使用Powershell遍历文件夹,在每个文件夹中创建一个名称为“ test”的文件夹

时间:2018-08-15 09:50:48

标签: powershell loops foreach

如何循环浏览一个文件夹,并在每个文件夹中创建文件夹“ test”。然后将完整的子文件夹结构移入其中。

首先结构如下:

├─Folder1
│ ├─Subfolder1
│ └─Subfolder2
└─Folder2
  ├─Subfolder1
  └─Subfolder2

目标是看起来像这样:

├─Folder1
│ └─Test
│   ├─Subfolder1
│   └─Subfolder2
└─Folder2
  └─Test
    ├─Subfolder1
    └─Subfolder2

我尝试了不同的方法。像这样:

$folders = Get-ChildItem U:\AsBuiltKopieScript\Kopie10StandorteCD1\* -Directory;
foreach ($Folder in $Folders) {
  $folder = New-Item -Type Directory -Path "U:\AsBuiltKopieScript\Kopie10StandorteCD1\#Folder.Fullname\GebäudeMast"
  Move-Item #Folder.Fullname -Destination 
}

但是无法解决问题。

2 个答案:

答案 0 :(得分:0)

您的问题是当您创建目标路径时,请尝试

$Root="U:\AsBuiltKopieScript\Kopie10StandorteCD1"

Get-ChildItem "C:\Temp\root" -directory | %{
$NewItem=New-Item -Path "$($_.FullName)\test" -ItemType Directory -Force
Get-ChildItem $_.FullName | where fullname -ne $NewItem.FullName | Move-Item -Destination $NewItem.FullName
}

答案 1 :(得分:0)

尝试一下-

Get-ChildItem U:\AsBuiltKopieScript\Kopie10StandorteCD1\ -Directory -recurse | % { New-Item -type directory -path "$($_.FullName)" -Name "test"}