我有一个目录树,由几个层组成,我希望在每个文件夹中递归创建30个占位符文件。
树看起来像这样:
--F:\inbox\test
----folder1
------subfolder1
------subfolder2
----folder2
------subfolder1
------subfolder2
----folder3
------subfolder1
------subfolder2
这就是我所拥有的。
$folders = gci -path f:\inbox\test -recurse | where {$_.PsIsContainer}
foreach ($folder in $folders) {
1..30 | % { New-Item -Name "$_.txt" -Value (get-date).tostring() -Itemtype file -force}
}
这只会在根文件夹中创建30个文件。我知道我的逻辑中缺少一些东西。
答案 0 :(得分:1)
您没有告诉new-item
放置文件的位置,因此它使用当前的工作目录。幸运的是,使用cmdlet的-Path
参数很容易解决这个问题。
$folders = gci -path f:\inbox\test -recurse | where {$_.PsIsContainer}
foreach ($folder in $folders) {
1..30 | % { New-Item -Path $folder.FullName -Name "$_.txt" -Value (get-date).tostring() -Itemtype file -force}
}