Windows批量重命名文件夹中的文件夹
问题描述:
我想遍历当前目录的所有目录的子目录。 $ g中的$ f部分不起作用。什么是正确的方法?Windows批量重命名文件夹中的文件夹
foreach ($g in dir) { foreach ($f in $g) { // do sth}}
我也想有机会获得$ G和$ F文件名中//做某事代码块。
编辑: 我从来没有在电源外壳任何东西,所以我对知识的缺乏遗憾; d
答
在PowerShell中,dir
是Get-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
每个目录名。
在你的场景中,'$ g'是一个文件或目录,所以内部循环没有任何意义。你不会做'foreach($ var in“C:\ Some \ file.txt”)'' –