2015-09-07 179 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每个目录名。