我想循环遍历当前目录的所有目录的子目录。 $ g中的$ f部分不起作用。什么是正确的方法?
foreach ($g in dir) { foreach ($f in $g) { // do sth}}
另外,我想在// do sth代码块中访问$ g和$ f文件名。
编辑: 我从未在电源外壳上做过任何事情,所以我很抱歉缺乏知识; d
答案 0 :(得分:2)
在PowerShell中,dir
是Get-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
。