2015-11-05 240 views
8

我試圖遞歸循環遍歷目錄中的所有文件夾,然後在每個目錄中執行一些操作。例如,創建一個文本文件。Powershell循環遍歷文件夾,在每個文件夾中創建文件

我可以得到所有的子文件夾到一個變量,像這樣:

$folders = Get-ChildItem -Recurse | ?{ $_.PSIsContainer } 

不過,我似乎無法創建每個子目錄中的文件 - 文件在頂層目錄,而不是創造。這是行不通的:

$folders | ForEach-Object { New-Item -ItemType file -Name "$_.txt" -path $_} 

這引發了一個錯誤,即找不到目錄或路徑太長。

如何在嵌套文件夾的每個子目錄中執行某些操作?

回答

15

嘗試這種情況:

Get-ChildItem -Recurse -Directory | ForEach-Object {New-Item -ItemType file -Path "$($_.FullName)" -Name "$($_.Name).txt" } 

基本上,Get-ChildItem命令返回DirectoryInfo對象序列。 FullName屬性包含完整路徑,而Name只包含葉目錄的名稱。

相關問題