如果我使用命令提示符将重音文件移动到同一目录,它可以正常工作。
move ó.mp3 ó.mp3
但是,当我在.bat
文件中使用相同的命令时,会出现以下错误:the system cannot find the file specified
.
@echo off
move ó.mp3 ó.mp3
pause
一个公然的莫吉巴克案例。我猜你使用Windows的本机notepad
编辑器保存脚本,使用共同调用的ANSI编码。以下注释的代码片段可以启发该问题:
@ECHO OFF
SETLOCAL EnableExtensions
REM save current code page (optional)
for /F "tokens=1* delims=:" %%G in ('CHCP') do set "_currentCP=%%H"
REM find notepad's ("ANSI") code page
for /F "tokens=1,2*" %%G in ('
REG QUERY "HKLMSYSTEMCurrentControlSetControlNlsCodePage" -v ACP^|find "ACP"
') do set "_notepadCP=%%I"
REM show flagrant mojibake case
echo %_currentCP%: move ó.mp3 óó.mp3
REM change the active console code page and show right result
>NUL CHCP %_notepadCP%
echo %_notepadCP%: move ó.mp3 óó.mp3
REM reurn the active console code page to saved value (optional)
>NUL CHCP %_currentCP%
pause
结果:
D:batSO61743331.bat
852: move ˇ.mp3 ˇˇ.mp3 1250: move ó.mp3 óó.mp3
我在(中欧(Windows上看到上面的输出。在西方窗户上,你可以看到类似的东西
850: move ¾.mp3 ¾¾.mp3 1252: move ó.mp3 óó.mp3
您应该使用此命令 CHCP/?
@echo off
CHCP 65001>nul
move ó.mp3 ó.mp3
pause