windows - echo -e 在 Windows 中等效?

标签 windows batch-file echo

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%"

如果您还需要一些特殊字符,如CRLFESCDEL,这是可能的用纯批处理创建它们。

如果您需要的不仅仅是 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/

相关文章:

batch-file - 批量比较字符串

Ant:如何在应用中回显目标文件的名称

windows - 如何绕过批处理文件处理限制

c - 如何在c中的Windows 8.1系统驱动器上创建文件?

batch-file - 如何查找不包含定义文本的文件并将其名称输出到文件中?

php - Echo php 代码不打印任何内容

bash printf + 回显字符串

windows - Scala & Spark : Dataframe. write._ 在 Windows 上

c++ - 通过管道发送回车按钮输入

batch-file - CMD 这个命令对 : dir >NUL 有什么好处