我有文件考试:
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
请帮帮我。谢谢。
答案 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
编辑。