我需要从文件夹中的所有文件名中删除第一个字符(始终为“_”)。
我目前正在使用这个命令:ren_*.txt *.txt
但它不起作用。
但是,如果我运行ren _*.txt A*.txt
它,它可以完美地工作,但这不是我想要的。
答案1
再次尝试 powershell ;)
在您想要的目录中运行此命令:
get-childitem *.txt | rename-item -newname { [string]($_.name).substring(1) }
说明:
-get-childitem *.txt
收集实际目录中的所有 *.txt 文件。
-rename-item -newname
使用 {} 中生成的字符串重命名 get-childitem 命令的管道结果
-[string]($_.name).substring(1)
从第一个字符开始获取文件名
答案2
忘记复杂的脚本吧。
rename
是一个非常古老且从未正确完成的命令。如果你没有正确使用它,结果可能会让你大吃一惊。
例如,要从 abcd1.txt、abcd2.txt、abcd3.txt 等中删除前缀 abcd,为了得到 1.txt、2.txt、3.txt,只需使用
rename "abcd*.txt" "////*.txt"
您需要的 / 数量与要删除的初始字符数量相同。因此,对于您的具体情况,您可以使用
ren "_*.txt" "/*.txt"
对两个参数都使用双引号。
答案3
如果你想避免写任何东西,可以尝试批量重命名实用程序。界面一开始可能会让人觉得很吓人,但只要尝试一下,你就会发现它其实并不难使用。
答案4
2020 年,我遇到了同样的批量重命名问题:删除许多名称的固定随机字符串。
在命令提示符中使用以下代码:
Rename "?????*.*" "*/////*.*"
(删除任意 5 个字符)(您必须使用“)
工作完美,感谢过去的人。