Windows批量重命名文件夹中的文件夹

时间:2015-09-07 14:33:19

标签: windows powershell cmd rename

我想循环遍历当前目录的所有目录的子目录。 $ g中的$ f部分不起作用。什么是正确的方法?

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

另外,我想在// do sth代码块中访问$ g和$ f文件名。

编辑: 我从未在电源外壳上做过任何事情,所以我很抱歉缺乏知识; d

1 个答案:

答案 0 :(得分:2)

在PowerShell中,dirGet-ChildItem的别名 - 一个cmdlet,用于检索容器内的项目(例如文件系统上的文件夹)。

要递归检索所有子目录中的子项,您可以使用-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