附加到文件名开头

附加到文件名开头

我正在尝试使用批处理文件将单词 [Replay] 添加到文件夹中的所有 mp3 文件中,如下所示:

@echo off
for %a in (c:\folder\*.mp3) do ren %a [Replay]%a

但它不会重命名文件。

我从谷歌搜索中尝试的所有示例都会附加单词,但会覆盖文件名中的下一个字符,我只需要将单词添加到开头而无需覆盖字母。

有什么想法吗?

答案1

您的批处理文件有三个问题:

  • 在批处理文件中,您必须使用%%a而不是%a

  • %%a将保存完整路径,而不仅仅是文件名。

  • 如果文件名中有空格,重命名将失败。

一般来说,我还建议echo在排除故障时保持开启。

尝试一下这个:

cd /d c:\folder
for %%a in (*.mp3) do ren "%%a" "[Replay]%%a"

如果重命名文件两次,for则会读取目录条目。作为一种解决方法,您可以将列表保存在临时文件中:

cd /d c:\folder
dir /b *.mp3 > temp
for /f "delims=" %%a in (temp) do ren "%%a" "[Replay]%%a"
del temp

相关内容