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

问题描述 投票:-1回答:1

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

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

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

编辑:我从来没有做过任何关于电源外壳的事情,所以我很抱歉缺乏知识; d

windows powershell cmd rename
1个回答
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附加到每个目录名称。

© www.soinside.com 2019 - 2024. All rights reserved.