我有一个应用程序创建批处理文件的问题。问题是我的输出批处理文件始终是 UTF-8,它不适用于批处理文件。输出包含像é,à,Ä等变音符号,所以无论我做什么,这些都在我的批处理文件中失败。
因此我的问题是:有没有办法在我的批处理文件命令中以某种 7 位表示形式写入 7F(十进制 127)以上的任何字符。例如,作为字符 240 或类似字符的“\0xF0”之类的十六进制字符串。
当然要使用 win 1252 编码,我会使用以下命令启动批处理文件:
chcp 1252
我有一个应用程序创建批处理文件的问题。问题是我的输出批处理文件始终是 UTF-8,它不适用于批处理文件。输出包含像é,à,Ä等变音符号,所以无论我做什么,这些都在我的批处理文件中失败。
因此我的问题是:有没有办法在我的批处理文件命令中以某种 7 位表示形式写入 7F(十进制 127)以上的任何字符。例如,作为字符 240 或类似字符的“\0xF0”之类的十六进制字符串。
当然要使用 win 1252 编码,我会使用以下命令启动批处理文件:
chcp 1252
感谢dbenham,他看到了显而易见的事情。从批处理生成几乎任何字符,包括 TAB
可以用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。