哈喽大家好,欢迎来到虚拟化时代君(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 $targetDirWrite-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 -ForceWrite-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补丁服务器安装图解教程



















