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%