使用PowerShell批量为客户端创建PM Tasks月度子目录
批量为客户端PM Tasks目录创建月度子目录的PowerShell脚本
直接用以下完善后的脚本即可实现需求,针对你的目录结构做了适配,同时优化了路径拼接的可靠性:
# 定义根路径 $rootPath = "I:\Clients\" # 生成01-12格式的月份列表 $months = 1..12 | ForEach-Object { $_.ToString("00") } # 获取Clients下所有客户端文件夹(仅目录,排除文件) $clientFolders = Get-ChildItem -Path $rootPath -Directory foreach ($client in $clientFolders) { # 拼接当前客户端的PM Tasks基础路径 $pmTasksPath = Join-Path -Path $client.FullName -ChildPath "PM Tasks" foreach ($month in $months) { # 拼接月度子目录完整路径 $monthPath = Join-Path -Path $pmTasksPath -ChildPath $month if (!(Test-Path -Path $monthPath)) { # 创建目录(-Force参数可自动创建上级目录,比如如果PM Tasks不存在也会创建) New-Item -ItemType Directory -Path $monthPath -Force | Out-Null Write-Host "已创建目录: $monthPath" } else { Write-Host "目录已存在: $monthPath" } } }
关键说明
- 月份生成:通过
1..12生成1到12的数字,再用ToString("00")格式化为两位数字的月份(比如1转为01),符合你的目录命名要求。 - 路径拼接优化:使用
Join-Path替代字符串拼接,它会自动处理不同系统的路径分隔符,避免出现\\或者路径格式错误的问题。 - 自动处理上级目录:
New-Item的-Force参数可以自动创建不存在的上级目录(比如如果某个客户端还没有PM Tasks目录,脚本会自动创建它,不需要额外判断)。 - 精准获取客户端文件夹:
Get-ChildItem -Directory只列出根路径下的目录,排除了可能存在的文件,避免无效循环。
内容的提问来源于stack exchange,提问作者kevorski
相关产品推荐
相关产品推荐

