1

我有一个应用程序创建批处理文件的问题。问题是我的输出批处理文件始终是 UTF-8,它不适用于批处理文件。输出包含像é,à,Ä等变音符号,所以无论我做什么,这些都在我的批处理文件中失败。

因此我的问题是:有没有办法在我的批处理文件命令中以某种 7 位表示形式写入 7F(十进制 127)以上的任何字符。例如,作为字符 240 或类似字符的“\0xF0”之类的十六进制字符串。

当然要使用 win 1252 编码,我会使用以下命令启动批处理文件:

chcp 1252
4

1 回答 1

3

感谢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。

于 2012-10-31T04:51:30.470 回答