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 方法
更通用的方法是使用命令 forfiles
( Dostips: Generate nearly any character... )
echo-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☺☻♥
。
关于windows - echo -e 在 Windows 中等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495576/