如何使用批处理文件重命名文件夹中的文件?

时间:2017-03-11 12:23:54

标签: batch-file symbols

我有文件考试:

abc de&f 1 ijk.mp3

abc de&f 2 ijk.mp3

abc de&f 3 ijk.mp3

.....

我想将这些文件重命名为:

abc de&f xyz 1 ijk.mp3

abc de&f xyz 2 ijk.mp3

...

我使用此命令

for /F "tokens=*" %%x in ('dir /b *.mp3') do call :rena "%%x"

exit

:rena

set y=%~1

set y=%y:de^&f=de^&f xyz%

ren "%~1" "%y%"

goto :eof

但错误是“&”这一行中的符号:

set y=%~1

请帮帮我。谢谢。

1 个答案:

答案 0 :(得分:1)

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
FOR /f "tokens=*" %%a IN (
 'dir /b /a-d "%sourcedir%\*.mp3" '
 ) DO CALL :rena "%%a"

GOTO :EOF

:rena
SET "original=%~1"
SET "new=%original:de&f=de&f xyz%"
ECHO REN "%sourcedir%\%~1" "%new%"
GOTO :eof

所以我改变了变量的名称和要扫描的目录名 - 这是不重要的。

关键是在set命令中使用引号 - 在字符串集中首选,以确保不分配尾随空格。

显然,ren命令只是echo编辑。