none
win10 命令行 对于 ANSI Escape Code 支持问题 RRS feed

  • 问题

  • 之前看到 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。保留所有权利。

    String.fromCharCode(27)
    \x1B
    \u001B

    将输出的文本复制并保存到文本,通过命令行 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

    为什么脚本输出不行呢?周年更新前我记得还是能通过脚本代码输出颜色文本的!



    • 已编辑 cosin0001 2016年9月24日 6:38 更新输出样本
    2016年9月22日 2:55

全部回复