Windows 批处理:forfiles 输出带有奇怪字符的文件名
Windows batch: forfiles output filenames with weird characters
我正在尝试 运行 2008 服务器上的脚本,该脚本调用具有以下参数的批处理文件:
forfiles -p %log_dir% -s -m *.* -d -3 /C "cmd /c echo @path" > %cfg_dir%\Filelist.txt"
我的问题是写入文件的输出,只要文件名包含非 ASCII 字符(例如 é
、ç
、ã
),它写错了,例如:
找到的文件是
S:\FOLDER\SUBFOLDER[=12=]_Certi**dão** Predial.pdf
并作为
写入输出文件
"S:\FOLDER\SUBFOLDER[=13=]_Certi**d¦o** Predial.pdf"
我已经将字符集更改为 850(原来是 470),但输出结果还是一样。
尝试
for /f "tokens=2 delims=:" %%a in ('chcp') do set src_cp=%%a
chcp 65001 & rem or chcp 1212
forfiles -p %log_dir% -s -m *.* -d -3 /C "cmd /c echo @path" > %cfg_dir%\Filelist.txt"
chcp %src_cp%
我正在尝试 运行 2008 服务器上的脚本,该脚本调用具有以下参数的批处理文件:
forfiles -p %log_dir% -s -m *.* -d -3 /C "cmd /c echo @path" > %cfg_dir%\Filelist.txt"
我的问题是写入文件的输出,只要文件名包含非 ASCII 字符(例如 é
、ç
、ã
),它写错了,例如:
找到的文件是
S:\FOLDER\SUBFOLDER[=12=]_Certi**dão** Predial.pdf
并作为
写入输出文件"S:\FOLDER\SUBFOLDER[=13=]_Certi**d¦o** Predial.pdf"
我已经将字符集更改为 850(原来是 470),但输出结果还是一样。
尝试
for /f "tokens=2 delims=:" %%a in ('chcp') do set src_cp=%%a
chcp 65001 & rem or chcp 1212
forfiles -p %log_dir% -s -m *.* -d -3 /C "cmd /c echo @path" > %cfg_dir%\Filelist.txt"
chcp %src_cp%