如何在 Windows cmd 中重命名文件名时省略文件名开头的字符?

如何在 Windows cmd 中重命名文件名时省略文件名开头的字符?

我想知道如何在 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删除这些空格。FORREN

答案2

忘记复杂的脚本吧。

rename是一个非常古老且从未正确完成的命令。如果你没有正确使用它,结果可能会让你大吃一惊。

例如,要从、、等abcd中删除前缀以获得、、,只需输入abcd1.txtabcd2.txtabcd3.txt1.txt2.txt3.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 键时立即更改文件名。因此,我始终建议您复制文件你重命名它们。然后,如果重命名如你所愿,你可以删除具有原始名称的文件。否则,你可能会得到大量错误的文件名,并且无法将它们恢复为原始名称(除非你有备份)。你被警告了!:-)

相关内容