从特定文件夹中每个文件夹的文件名中删除一个字符

从特定文件夹中每个文件夹的文件名中删除一个字符

使用脚本,我无意中重命名了服务器上用户主文件夹中的所有内容——这样每个文件夹(以及文件夹中的文件夹)中的每个文件都被重命名为末尾带有“$”。我所做的只是将每个用户的主文件夹重命名为 foldername$,以便在搜索共享文件夹时隐藏它。

长话短说,我找到了如何从一个文件夹中的每个文件中删除“$”的方法,但它并不适用于所有子文件夹:

get-childitem * | foreach { rename-item $_ $_.Name.Replace("$","") }

有谁知道如何修改它以从文件夹下每个文件夹中每个文件末尾删除 $ 符号?

谢谢!

答案1

尝试:

Get-ChildItem -Filter "*$" -Recurse | Rename-Item -NewName {$_.Name.Replace("$","") }
  • -Filter比 where/foreach 快得多。
  • -Recurse遍历子文件夹
  • Rename-Item 接受管道输入。

相关内容