win10 命令行 对于 ANSI Escape Code 支持问题
之前看到 win10 命令行已经支持 ANSI Escape Code,在系统上进行了测试,成功显示了 有颜色的文本
前几天进行了 win10 周年更新,更新完成后 再用相关程序测试,发现无法显示 ANSI Escape Code 的颜色文本
代码是 js 通过 cscript 运行
function ansi_test($esc, $text)
{
WScript.Echo($esc+'[31m'+$text);
}
ansi_test(String.fromCharCode(27), 'String.fromCharCode(27)');
ansi_test('\x1B', '\\x1B');
ansi_test('\u001B', '\\u001B');
执行结果如下所示,未显示为颜色文本
D:\>c:\Windows\SysWOW64\cscript.exe test.js
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。
[31;1mString.fromCharCode(27)[0m
[31;1m\x1B[0m
[31;1m\u001B[0m
将输出的文本复制并保存到文本,通过命令行 type <file> 进行输出可以显示颜色文本,如下所示:
D:\>c:\Windows\SysWOW64\cscript.exe test.js > test.txt
D:\>type test.txt
Microsoft (R) Windows Script Host Version 5.812
版权所有(C) Microsoft Corporation。保留所有权利。
String.fromCharCode(27)
\x1B
\u001B
为什么脚本输出不行呢?周年更新前我记得还是能通过脚本代码输出颜色文本的!