写字符>根据Windows批处理文件中的代码页1252,将7F(127)作为十六进制字符串

时间:2012-10-31 01:26:18

标签: windows batch-file hex

我在创建批处理文件的应用程序时遇到问题。问题是我的输出批处理文件总是UTF-8,它不适用于批处理文件。输出包含变量标记,如é,à,Ä等。所以无论我做什么,我的批处理文件都会失败。

因此我的问题:有没有办法在我的批处理文件的命令中以7位表示形式写出7F(十进制127)以上的任何字符。例如。对于字符240或类似的东西,像“\ 0xF0”这样的十六进制字符串。

当然要使用win 1252编码,我将启动批处理文件:

chcp 1252

1 个答案:

答案 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。