我想知道如何在 Windows 中重命名文件时省略文件名的第一个字符cmd
。
就我而言,我有一堆文件,例如:
#test1.txt
#test2.txt
#test3.txt
#test4.txt
#test5.txt
我想重命名 cmd 提示符中的所有文件,例如
test1.txt
test2.txt
test3.txt
test4.txt
test5.txt
文件在c:\myfiles\
。
答案1
几个月前我遇到过类似的问题。事实证明,使用 DOS 删除文件名开头的字符有点棘手。我遇到了这该网站对此提供了很好的解决方案。
您需要做的就是cd
进入包含文件的目录并执行这两个命令。
REN *.* " *.*"
FOR %v IN (*.*) DO REN "%v" %v
这应该替换所有文件名中的第一个字符。
其想法是使用第一个命令用空格替换不需要的字符数,然后使用循环和命令REN
删除这些空格。FOR
REN
答案2
忘记复杂的脚本吧。
rename
是一个非常古老且从未正确完成的命令。如果你没有正确使用它,结果可能会让你大吃一惊。
例如,要从、、等abcd
中删除前缀以获得、、,只需输入abcd1.txt
abcd2.txt
abcd3.txt
1.txt
2.txt
3.txt
rename "abcd*.txt" "////*.txt"
您需要的数量/
与您想要删除的初始字符的数量相同。
对两个参数都使用双引号。
以上内容是我从另一个帖子上的其他人那里复制而来的。
请注意,这可以正确处理带有空格的文件名。
答案3
我将扩展 Andrew Ion 的帖子。它非常简单,但并没有完全解释该命令的灵活性。
我经常用数字前缀来命名某些类型的文件(并用括号将前缀括起来,以便于阅读数字),例如以下三个:
[#001] 土豚.txt
[#002]獾.txt
[#003] 狸猫.txt, ETC。
如果我想删除前缀(删除前 7 个字符,包括空格),我可以输入以下内容:
ren "[#???] *.txt" "///////*.txt"
这会仅有的重命名以...开头的文件[#, 有一个]并以空格作为第六和第七个字符,并以。TXT。此命令将上述文件重命名为土豚.txt,獾.txt,狸猫.txt, ETC。
意识到如果你的文件名后数字前缀是不是独特的(例如[#001] 土豚.txt和[#002] 土豚.txt),则该命令将仅重命名一文件中,跳过重命名另一个,并响应错误:“存在重复的文件名,或者找不到该文件。“
因此确保每个文件都有唯一的名称没有运行命令之前的前缀。
此外,虽然大多数(好的)重命名程序都会给你预览新文件名的样子前应用更改后,使用此重命名命令将在按下 Enter 键时立即更改文件名。因此,我始终建议您复制文件前你重命名它们。然后,如果重命名如你所愿,你可以删除具有原始名称的文件。否则,你可能会得到大量错误的文件名,并且无法将它们恢复为原始名称(除非你有备份)。你被警告了!:-)