Windows Terminal (Preview)治好了cmd,powershell的癌症
powershell吧
全部回复
仅看楼主
level 7
pck6636 楼主
Windows Terminal (Preview)治好了cmd,powershell的癌症
前言
话说n年前,我想开发一款powershell麻将游戏,但是发现命令行下无法显示麻将牌这种特殊符号。经过研究发现,这是4字节的utf16le字符串。而powershell依赖的渲染引擎,只能渲染双字节的,即65535之内的。
Linux下的powershell没有这个问题。
我给powershell提交了issue,但是没有得到反馈。
随着时间的推移,随着git的普及,这个问题越来越严重了,因为git输出中有很多特殊字符串,用户呼声越来越高,才引起了ms的重视。也就有了Windows Terminal。
-------------------------------------------------------------------------------------------
命令行渲染引擎
命令行渲染引擎是啥玩意?我以前不知道,现在我知道了。就是conhost.exe。具体可以看看Windows Terminal原理介绍。这是一个重大+基础的东西,但我不明白为什么微软不给旧的系统使用。
要求系统最低版本为:201905月版win10。Win10-18362
在我眼中,这就是在win中新建个conhost2.exe,然后让cmd.exe加参数调用它的问题。或者叫做 conhost2cmd.exe ,,, conhost2powershell.exe。
------------------------------------------------------------------------------------------
图示:
----------------------------------------------------------------------------------------------
结论:
1使用这个新的conhost.exe,或者说使用Windows Terminal (Preview),最大的好处,就是给cmd.exe,powershell.exe,pwsh.exe带来了显示特殊字符。
2 不要直接运行cmd.exe,powershell.exe,pwsh.exe,要使用套在Windows Terminal 壳子中的cmd.exe,powershell.exe,pwsh.exe。
2019年08月14日 14点08分 1
level 13
所以微软给了你多少?
2019年08月16日 02点08分 3
level 5
[吃瓜]刚刚看书注意到,确实不能显示超过两个字节的。不过ies可以,powershell_ies
2019年08月17日 08点08分 4
level 7
pck6636 楼主
嗯 ise 可以。
2019年08月17日 16点08分 5
level 9
高手
2019年11月10日 09点11分 6
1