我想仅为部分线显示彩色输出
下面是在cygwin上运行时运行正常的代码:
echo -e '\e[0;31m' "Something failed"'\e[0m'
它以红色正确显示输出。
现在我想调用windows cmd提示符并生成相同的输出。
我想用" cmd / c"做同样的事情。选项。但它不起作用。
下面是我试图实现的代码,因为我正在调用cygwin。
cmd /c echo -e '\e[0;31m' "Something failed"'\e[0m'
它不会产生彩色输出。我也试过使用bin / echo但它仍然无法显示红色输出。
有没有什么方法可以通过从cygwin调用cmd / c来实现红色输出?
答案 0 :(得分:0)
是的,有些方法,但您的代码无法正常工作,因为echo -e ..
将使用cmd.exe执行,而且echo版本的Windows不支持-e
。
您可以为此构建自己的echo-e
函数或批处理文件。
echo-e.bat
@echo off
set "arg1=%~1"
set "arg1=%arg1:\x=0x%"
set "arg1=%arg1:\e=0x1B%"
forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo(%arg1%"
然后你可以像
一样使用它cmd /c echo-e "\e[0;31m Something failed\e[0m"
注意:
这只适用于从薄薄的窗口开始的情况
当您的代码在cmd窗口中运行时,启动一个cygwin脚本,启动cmd /c echo-e ...
它只能在win10中使用vt100支持