【发布时间】:2019-07-22 12:26:06
【问题描述】:
我尝试通过删除 - .extension 来重命名多个文件夹中的批处理文件
示例文件:
- 测试文件 1 - 1234.docx
- 测试文件 1 - 4321.docx
- 测试文件 1 - 6789.docx
为此,我运行以下脚本:
Get-ChildItem -recurse -exclude .dxl | foreach {
Rename-Item -Path $_.FullName -NewName (($_.BaseName -replace '(.)-.*?$','$1') + $_.Extension) }
这会给我以下错误:
“重命名项目:当文件已存在时无法创建该文件。”
如果重命名后文件已经存在,如何通过添加 (1)、(2)、(3) 来消除这种情况?
【问题讨论】:
-
类似
while (Test-Path $f) { $c++ ; $f="$n ($c)"} -
Test-Path将让您检查文件是否已存在。不要立即尝试重命名,而是将您传递给-NewName的表达式分配给字符串变量,然后使用Test-Path,并修改字符串变量的值,直到Test-Path告诉您它没有'不存在 - 然后执行Rename-Item。 -
看看我的Copy-Unique函数。希望对您有所帮助。
-
答案已被接受,因此我假设发布的解决方案正在工作,如果没有回复,我可能有其他答案
标签: powershell rename