哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)。
“ 大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…(每天更新不间断,福利不见不散)
第一章、小叙
在这个数字化的宇宙中,文件夹和文件就像程序员的“孩子”,我们总是希望他们有一个整齐的家。于是,PowerShell 成为了我们的“数字保姆”,用它的魔法指令来批量创建、重命名和拷贝这些“小家伙”。恰巧总结下最近工作中云桌面的问题,譬如Horizon 虚拟应用中某些应用不支持并发,那我们可以批量脚本创建目录和文件。
第二章、批量创建文件夹
首先我们看到D盘虚拟化时代君的文件夹下面是空的,我们通过Powershell脚本批量创建。创建名字分别为:Xnhsdj-01-Xnhsdj-10。
如下图所示,打开powershellse,输入脚本
运行命令查看效果
脚本如下,自取
# 虚拟化时代君出品
# 定义基目录
$baseDir = "D:\虚拟化时代君"
# 确保基目录存在,如果不存在则创建
if (-not (Test-Path -Path $baseDir)) {
New-Item -ItemType Directory -Path $baseDir
}
# 定义要创建的文件夹数量
$startIndex = 1
$endIndex = 10
# 循环创建文件夹
for ($i = $startIndex; $i -le $endIndex; $i++) {
# 格式化文件夹名称,确保序号为两位数字
$folderName = "Xnhsdj-" + "{0:D2}" -f $i
# 拼接基目录和文件夹名称,得到完整的文件夹路径
$folderPath = Join-Path -Path $baseDir -ChildPath $folderName
# 检查文件夹是否已存在,如果不存在则创建
if (-not (Test-Path -Path $folderPath)) {
New-Item -ItemType Directory -Path $folderPath
# 输出创建的文件夹路径
Write-Output "创建文件夹: $folderPath"
} else {
# 如果文件夹已存在,输出提示信息
Write-Output "文件夹已存在: $folderPath"
}
}
# 输出完成信息
Write-Output "文件夹创建过程已成功完成。"
以上脚本亲自测试,如需要更改里面参数自行参考。
第三章、批量修改文件夹名字
我们在文件夹Xnhsdj-01下面创建了N个包含文件的文件夹,我们演示下批量修改文件夹名字。
修改Powershell示例,如图所示
脚本如下,自取
# 虚拟化时代君出品
# 定义目标目录
$targetDir = "D:\虚拟化时代君\Xnhsdj-01"
# 确保目标目录存在
if (-not (Test-Path -Path $targetDir)) {
Write-Output "目标目录不存在: $targetDir"
exit
}
# 获取目录下所有以 "telegram" 开头的文件夹(忽略大小写)
$folders = Get-ChildItem -Path $targetDir -Directory | Where-Object { $_.Name -like "telegram*" }
# 检查是否找到符合条件的文件夹
if ($folders.Count -eq 0) {
Write-Output "没有找到以 'telegram' 开头的文件夹。"
exit
}
# 初始化文件夹计数器
$counter = 1
# 循环重命名文件夹
foreach ($folder in $folders) {
# 格式化新的文件夹名,确保序号为两位数字
$newFolderName = "Telegram-" + "{0:D2}" -f $counter
# 构造新的文件夹路径
$newFolderPath = Join-Path -Path $targetDir -ChildPath $newFolderName
# 输出调试信息
Write-Output "正在重命名文件夹: $($folder.FullName) -> $newFolderName"
# 重命名文件夹
Rename-Item -Path $folder.FullName -NewName $newFolderName
# 增加计数器
$counter++
}
Write-Output "文件夹重命名过程已成功完成。"
第四章、批量复制文件到指定目录
我们演示将D:\虚拟化时代君\Xnhsdj-01下的所有文件夹和文件都复制到D:\虚拟化时代君下其他的文件夹下面
正在拷贝
拷贝完成
脚本如下,自取
# 虚拟化时代君出品
# 定义源目录和目标根目录
$sourceDir = "D:\虚拟化时代君\Xnhsdj-01"
$targetRootDir = "D:\虚拟化时代君"
# 确保源目录存在
if (-not (Test-Path -Path $sourceDir)) {
Write-Output "源目录不存在: $sourceDir"
exit
}
# 获取源目录下的所有子目录和文件
$items = Get-ChildItem -Path $sourceDir
# 定义目标文件夹的名称列表
$targetFolders = @("Xnhsdj-02", "Xnhsdj-03", "Xnhsdj-04", "Xnhsdj-05", "Xnhsdj-06", "Xnhsdj-07", "Xnhsdj-08", "Xnhsdj-09")
# 循环遍历目标文件夹名称列表
foreach ($folderName in $targetFolders) {
# 构造目标文件夹路径
$targetDir = Join-Path -Path $targetRootDir -ChildPath $folderName
# 确保目标文件夹存在,如果不存在则创建
if (-not (Test-Path -Path $targetDir)) {
New-Item -ItemType Directory -Path $targetDir
Write-Output "创建目标文件夹: $targetDir"
}
# 输出当前目标文件夹信息
Write-Output "正在处理目标文件夹: $targetDir"
# 循环遍历源目录下的子目录和文件
foreach ($item in $items) {
# 构造目标路径
$targetItemPath = Join-Path -Path $targetDir -ChildPath $item.Name
# 拷贝子目录和文件到目标文件夹
Copy-Item -Path $item.FullName -Destination $targetItemPath -Recurse -Force
Write-Output "已拷贝: $($item.FullName) -> $targetItemPath"
}
}
Write-Output "文件夹拷贝过程已成功完成。"
脚本里面自定义值说明提示:
-
定义源目录和目标根目录:
-
$sourceDir
变量定义了源目录,即D:\虚拟化时代君\Xnhsdj-01
。 -
$targetRootDir
变量定义了目标根目录,即D:\虚拟化时代君
。
-
-
确保源目录存在:
-
使用
Test-Path
检查源目录是否存在,如果不存在则输出提示信息并退出脚本。
-
-
获取源目录下的所有子目录和文件:
-
使用
Get-ChildItem
获取源目录下的所有子目录和文件。
-
-
定义目标文件夹的名称列表:
-
使用
$targetFolders
数组定义目标文件夹的名称,即Xnhsdj-02
到Xnhsdj-09
。
-
-
循环遍历目标文件夹名称列表:
-
使用
foreach
循环遍历目标文件夹名称列表。 -
使用
Join-Path
构造目标文件夹路径。 -
使用
Test-Path
检查目标文件夹是否存在,如果不存在则使用New-Item
创建目标文件夹。 -
输出当前正在处理的目标文件夹信息。
-
-
循环遍历源目录下的子目录和文件:
-
使用
foreach
循环遍历获取到的子目录和文件。 -
使用
Join-Path
构造目标路径。 -
使用
Copy-Item
递归地将子目录和文件拷贝到目标文件夹,并输出拷贝结果。
-
第五章、往期回顾
如果您觉得文章不错可以查看以前的文章
全网首发Windows五大高危端口(135/136/137/139和445)安全防护策略
全网首发Windows Server 2019 AD 域控降级与退域的全面指南
Windows无需管理员权限,命令轻松修改IP和DNS
一文秒懂ipconfig、ifconfig和ip addr的区别与应用
从小白到高手:Windows注册表基础运维全攻略
Windows Server AD域控账号CMD批量导入小技巧
Windows安全防护技能抵御勒索病毒入侵威胁
全网首发Windows 系统中常用的巡检命令和 CMD 命令
紧急通告!Windows TCP/IP 远程代码执行高危漏洞(CVE-2024-38063)
解决方案:如何在虚拟机中扩展 Windows 11 C 盘,绕过恢复分区的限制!
Windows隐藏任意exe程序小秘籍
探索Windows秘密:揭晓30个常用端口的神秘面纱与使用技巧
Windows Server 2019 会话远程桌面-快速部署(RemoteApp)
Windows Server 2019 WSUS补丁服务器安装图解教程