我正在使用ANSII颜色(如
)打印带有彩色输出的窗口的批处理文件echo <ESC>[1m Some bold text <ESC>[0m
echo <ESC>[1;32m Some bold green text <ESC>[0m
来自this answer和this table我知道我必须使用<ESC>
的ANSII代码27字符,我可以从file the user linked复制它。
这个工作正常,但我想知道批处理中是否有任何选项使用“普通”(可读)字符“硬编码”这个序列,例如在bash on linux上
echo -e "\033[1;32m Red Bold Text \033[0m"
在this page上我找到了一些如何插入转义序列的选项。而且我也读过一个可以使用的
cmd /c exit 65
echo %=exitcodeAscii%
打印A
,但这似乎不适用于
cmd /c exit 27
echo %=exitcodeAscii%[31m This would be supposed to be red, right?
如何使用批处理文件中的代码生成转义序列,而不是通过按某些键组合来插入转义序列?
答案 0 :(得分:2)
您可以构建自己的echo-e.bat文件echo -e equivalent in Windows?。
或者改为使用批处理功能。
call :echo-e "\x1b[1;31m Red Bold Text \x1b[0m"
exit /b
:echo-e
setlocal
set "arg1=%~1"
set "arg1=%arg1:\x=0x%"
forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo(%arg1%"
exit /b
创建单个转义字符(27),您可以使用FORFILES或PROMPT
喜欢这个样本
for /F "delims=#" %%a in ('prompt #$E# ^& for %%a in ^(1^) do rem') do set "esc=%%a"
echo %ESC%[1;31m Red Bold Text %ESC%[0m