用于将文件重命名为特定名称的批处理文件

时间:2017-03-29 07:06:45

标签: windows batch-file cmd

快速解释一下。我们有数百个项目,每个项目和每个新项目都有一个我们填写大量信息的计划。由此我们得到20个名为File_1File_2等的pdf文件。

我想要做的是使用bat文件将文件重命名为以下示例。

File_1 = abc.pdf

File_2 = xyz.pdf

File_3 = qwe.pdf

我想在bat文件中具体说明我应该调用file_1file_2等。我得到的文件将始终被称为File_1File_2等我总是希望它们被重命名。所以每次我得到这些文件时我都会运行bat文件。有没有办法做到这一点?或者有更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我假设您的文件将始终被调用" file_1"," file_2"等等。?? 如果是,那么您可以只为每个文件编写一行文件。例如

ren file_1 foo.pdf
ren file_2 bar.pdf
ren file_3 foobar.pdf

请注意,由于您没有指定原始文件名的扩展名,我也没有。您可能希望将完整文件名放在扩展名中,或者在适当情况下使用通配符,例如ren file_1.*。 (尽管如此,请小心使用通配符,否则您最终可能会尝试使用相同的名称重命名多个文件!)

您可以先检查文件是否存在,并且只对那里的文件运行ren,或者您可以运行它并让错误文件出错(尽管我确定其他人会有理由说明您的原因不该'。T)

您还应该考虑是否已经有一个文件,其中包含您要重命名的名称,因为如果存在,那么重命名将会出错并失败。

如果您的文件每天都有不同的名称,则需要提供有关您拥有的内容和所需内容的更多信息。

编辑 - 对以下评论的回复

复制(并完成)此代码,并将其另存为' rename.bat'或者你需要的任何东西。

@echo off
ren file_1 abc.pdf
ren file_2 xyz.pdf
ren file_3 qwe.pdf
<<repeat as necessary>>

@echo off只是停止批处理文件显示命令。它仍将显示错误(如果文件不存在或者您尝试将文件重命名为现有文件名)。你真的应该注意抓住错误并用它做一些事情,但是如果你能100%确定新的文件名不存在就行了。

另外值得指出的是,由于我还没有使用完整的文件名,批处理文件需要与file_1,file_2等位于同一文件夹中。

您可以使用move指定原始文件的完整路径,以及新路径(它将移动并重命名文件),但您仍然可能遇到重复文件名等相同的问题。

我假设您最终会得到一个包含file_1,file_2等的文件夹,因此您只需将批处理文件复制到文件夹中,然后运行它,然后将所有重命名的文件移动到需要的位置。然后,下次需要运行该文件时,您的文件夹中只会包含新的file_1,file_2等文件集,因此您可以再次复制批处理文件,运行它......等等。

EDIT2 - 考虑过包含空格的文件名

我刚刚想到您的现有文件(file_1,file_2等)似乎没有名称中的空格,但您的新文件名可能(您没有完全指定名称) 。如果文件名有空格,请确保在命令中添加引号,例如

ren file_1 "my new file.pdf"

您也可以引用原始文件名(引用即使没有空格也不会受到伤害)所以你可以试试

ren "file_1" "abc.pdf"
ren "file_2" "x y z.pdf"
ren "file_3" "qw   e.pdf"
etc.