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