这个脚本在所有子文件夹中创建文件有什么问题?

时间:2013-11-11 16:39:42

标签: powershell-v2.0

我有一个目录树,由几个层组成,我希望在每个文件夹中递归创建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个文件。我知道我的逻辑中缺少一些东西。

1 个答案:

答案 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}
}