【问题标题】:powershell - bulk create of subfolders in multiple parent folderspowershell - 在多个父文件夹中批量创建子文件夹
【发布时间】:2014-07-17 22:37:25
【问题描述】:

我正在尝试在“Folder1”到“Folder200”的所有文件夹中创建一个“FolderB”子文件夹。仅当“Folder1”到“Folder200”包含名为“FolderA”的子文件夹时才会发生这种情况。然后将在与 FolderA 相同的级别创建 FolderB。我可以创建 FolderB,但我无法让脚本跳过任何不包含 FolderA.... 的父文件夹。

$root = "\\server\folder1"

ForEach ($dir in (Get-Item -Path "$root\*\" | ?{$_.PSIsContainer})){

If (!(Test-Path -Path "\*\FolderA")) {

New-Item -Path "$root\*\" -Name "FolderB" -ItemType Directory | Out-Null

}

}

【问题讨论】:

  • 你有没有注意到你说ForEach ($dir in...但从不在循环中引用$dir

标签: batch-file powershell


【解决方案1】:

在这里,这应该更适合您。它实际上使用路径在循环中进行测试,并且我修复了您的 If 语句,因为您正在检查是否没有 FolderA,然后创建 FolderB:

$root = "\\server\folder1"

ForEach ($dir in (Get-ChildItem -Path "$root\*\" | ?{$_.PSIsContainer} | Select -Expand Name)){

 If ((Test-Path "$dir\FolderA")) {

  New-Item -Path "$dir\FolderB" -ItemType Directory | Out-Null

 }

}

【讨论】: