我有这样的文件列表:。
测试(文件1)[文字] .txt文件
测试(文件2)[文字] .txt文件
测试(文件3) [text] .txt重命名文件删除时间在PowerShell中
我需要删除任何“()”,“[]”和任何“。”,将它们替换为空格而不更改文件扩展名。我试过以下,但它不工作:
dir C:\scratch\*.txt | % { Rename-Item $_ ($_.basename -replace "\(", " "`
-replace "\)", " "`
-replace "\[", " "`
-replace "\]", " "`
-replace ".", " ")}
理想情况下,文件名应该在格式落得“测试文件1的text.txt”
这两个答案都很好,我给出了这个答案,因为更容易的正则表达式。但有一个问题:执行上述操作会留下两个空间,可能会有相邻的字符在一起。我需要添加另一个“替换”\ s +',''吗?我将如何替换字符串末尾的空格? \ z似乎没有这样做。 – fenster 2009-11-27 23:42:59
在答案中查看更新后的正则表达式:[()[\\]。] - > + < - 以及Trim()的加法。 – 2009-11-27 23:53:13