2015-09-07 181 views
-2

我想遍歷當前目錄的所有目錄的子目錄。 $ g中的$ f部分不起作用。什麼是正確的方法?Windows批量重命名文件夾中的文件夾

foreach ($g in dir) { foreach ($f in $g) { // do sth}} 

我也想有機會獲得$ G和$ F文件名中//做某事代碼塊。

編輯: 我從來沒有在電源外殼任何東西,所以我對知識的缺乏遺憾; d

+0

在你的場景中,'$ g'是一個文件或目錄,所以內部循環沒有任何意義。你不會做'foreach($ var in「C:\ Some \ file.txt」)'' –

回答

0

在PowerShell中,dirGet-ChildItem一個別名 - 檢索一個容器中的項目一小命令(例如作爲文件系統上的文件夾)。

從所有子目錄檢索子項遞歸,您可以使用-Recurse開關:

Get-ChildItem -Path C:\Root\Folder\ -Recurse 

Get-ChildItem還具有開關,用於僅返回文件或目錄(-File-Directory分別)。

所以你的循環(如果你在目錄只是有興趣)看起來是這樣的:

foreach($Directory in Get-ChildItem -Path C:\Root\Folder\ -Recurse -Directory){ 
    Rename-Item $Directory -NewName $($Directory.Name + "_2") 
} 

這將追加_2每個目錄名。