如何使用批处理文件重命名文件夹中的文件?
How to rename files in a folder in using batch file?
我有文件考试:
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
请帮帮我。谢谢。
@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
ed。
我有文件考试:
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
请帮帮我。谢谢。
@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
ed。