我在创建批处理文件的应用程序时遇到问题。问题是我的输出批处理文件总是UTF-8,它不适用于批处理文件。输出包含变量标记,如é,à,Ä等。所以无论我做什么,我的批处理文件都会失败。
因此我的问题:有没有办法在我的批处理文件的命令中以7位表示形式写出7F(十进制127)以上的任何字符。例如。对于字符240或类似的东西,像“\ 0xF0”这样的十六进制字符串。
当然要使用win 1252编码,我将启动批处理文件:
chcp 1252
答案 0 :(得分:3)
感谢dbenham,他看到了显而易见的事。 Generate nearly any character, including TAB, from batch
可以使用forfiles
完成。
@echo off
call :hex2Char 0x7f char_7F
call :hex2Char 0x80 char_80
echo %char_7F% %char_80%
exit /b
:hex2Char hexString rtnVar
for /f delims^=^ eol^= %%A in (
'forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo(%~1"'
) do set "%~2=%%A"
exit /b
但即使这似乎也失败了一些字符,如0xF4或0xF5。