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

The*_*key 19 windows-7 batch rename batch-rename

我有一个左侧格式的文件列表。我想在每个文件名后附加一个字符串,但扩展名之前,如下所示:

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
...
Run Code Online (Sandbox Code Playgroud)

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

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

我已经试过了ren命令,并遵循一些这些示例此页面,但生成的文件名添加的字符串延:

File 1.txt version 1.txt
Run Code Online (Sandbox Code Playgroud)

Kar*_*ran 42

与其依赖ren的无证怪癖,为什么不以正确的方式做到这一点?

for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"
Run Code Online (Sandbox Code Playgroud)

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

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

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


bum*_*mmi 6

对于更长的文件名,您将不得不?在块中添加更多?????????

ren *.?* ????????????????????????????????????????????????????????" version 1".*
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你这么快回复!我稍微编辑了命令,以保留文件扩展名,并且只影响 txt 文件:ren *.txt ????????????????????????????”版本1.txt" (2认同)