我正在编写一个新的PowerShell脚本,我想使用Unicode表情符号,新的Windows终端预览版现在支持这些表情符号。但是,对于运行不支持它的“遗留”PowerShell的用户,我不希望显示无法识别的字符,而是希望向他显示一些其他文本/符号。
为了更简单-我想知道当我的PS脚本运行在新的终端和显示一件事,并显示其他PS终端的东西。
我试过使用$env:TERM_PROGRAM
。如果我在vscode PS终端中使用,它会返回“vscode”,但在普通PS终端或新终端中,它不会返回任何内容。
有什么想法吗
3条答案
按热度按时间2w2cym1i1#
Windows终端仍然处于起步阶段,没有太多的东西可以识别它,但我注意到它添加了一个环境变量WT_SESSION,你可以尝试检查一下:
syqv5f0l2#
另一个不依赖于环境的答案,你可以检查终端可执行文件的进程父堆栈:
这是我用来确定我是否在conemu的方法。
myzjeezk3#
在CMD下:
注意:Tabby通常总是启用ANSI。ConEmu可以在设置中禁用ANSI。
根据ZSH:
我在Windows终端和Tabby下没有zsh,但我假设环境变量$WT_SESSION和$TERM_PROGRAM的定义类似。你来测试。