在文件名中将 "." 替换为 "_"

5

我正在使用PowerShell替换pdf文件名:

Get-ChildItem -Path C:\All -Filter *.pdf | Rename-Item -NewName { $_.Name.Replace('.','_') }

如果我将%20替换为_,它可以正常工作,但是如果我们使用“test.one.pdf”,我需要将输出更改为“test_one.pdf”。如果我使用上述语法,它会将pdf前面的点替换成下划线,如“test_one_pdf”。


@4c74356b41 他不使用正则表达式,但我看不出为什么这不起作用。 - Martin Brandl
1个回答

14

您的代码将把name.001.pdf重命名为name_001_pdf,因此除非您实际上想要删除文件扩展名,否则您只需要替换文件名而不是扩展名。

Get-ChildItem -Path "C:\All" -Filter "*.pdf" | Rename-Item -NewName { $_.BaseName.Replace(".","_") + $_.Extension }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接