使用批处理文件将文本添加到文件名末尾(但在扩展名之前)

使用批处理文件将文本添加到文件名末尾(但在扩展名之前)

我有一个文件列表,其格式如左图所示。我想在每个文件名后附加一个字符串,但是扩展,如图所示:

File 1.txt  ->  File 1 version 1.txt
File 2.txt  ->  File 2 version 1.txt
File 3.txt  ->  File 3 version 1.txt
File 4.txt  ->  File 4 version 1.txt
...

在每种情况下,附加的字符串在所有文件中都是相同的。

这看起来似乎是一项非常简单的任务,但我在将其放入批处理文件中时遇到了一些麻烦。

我已经尝试过这个ren命令,并按照一些示例进行操作这一页,但生成的文件名会附加字符串扩展:

File 1.txt version 1.txt

答案1

对于较长的文件名,你必须?在块中添加更多内容?????????

ren *.?* ????????????????????????????????????????????????????????" version 1".*

答案2

而不是依赖的未记录的怪癖,为什么不以正确的方式做到这一点?

for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"

如果您想在批处理文件中使用它,只需记住将每个 % 符号加倍。

这行代码将循环遍历所有匹配的文件*.txt并对每个文件名执行重命名命令(ren)。 %a是完整文件名,%~a是没有添加额外引号的文件名(引号在命令中添加)。%~na是不带文件扩展名的文件名,%~xa是文件扩展名。

如果有一个文件,则File 1.txt在当前目录中将执行以下命令: ren "File 1.txt" "File 1 version 1.txt"

答案3

我想将“_A”添加到多个文件中,这就是我所做的。

我先删除了扩展名,添加了后缀,然后将扩展名改回原始扩展名。这确实对我有用,并且使批处理代码保持简单,因为我不擅长编程。

@ECHO OFF

REN *.pdf *.
REN *. *_A.
REN *. *.pdf

答案4

对于不熟悉命令的人(比如我),有几个软件可以很容易地进行批量重命名:

  • 批量重命名实用程序(非开源)
  • 重命名!(开源)

相关内容