Windows 中是否有等效的 Linux“echo -e”,以便我可以使用“echo -e \xnnn”打印出 ASCII 代码为十六进制值 nnn 的字符?
没有等效的函数,但您可以编写自己的函数。
我会把问题分成两部分。
- 将十六进制数转换为十进制数。
- 将十进制数转换为 ASCII。
从十六进制转换为十进制很简单
set "myHex=4A"
set /a decimal=0x%myHex%
将数字转换为 ASCII 比较棘手,这取决于所需的 ASCII 范围
如果您只需要从 32(空格)到 126'~' 的范围,您可以使用=ExitCodeAscii
多变的
set "decimal=%1"
cmd /c exit /b %decimal%
echo "%=ExitCodeAscii%"
如果您还需要一些特殊字符,例如CR
, LF
, ESC
, DEL
,可以用纯批处理来创建它们。
如果您需要更多,可以使用 vbscript。
福文件法
更通用的方法是使用命令forfiles
(Dostips:生成几乎任何角色...... http://www.dostips.com/forum/viewtopic.php?t=3857)
回声-e.bat
@echo off
set "arg1=%~1"
set "arg1=%arg1:\x=0x%"
forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo(%arg1%"
你可以通过调用它echo-e.bat "Hello\x01\x02\x03"
你得到Hello☺☻♥
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)