收到一个有意思的单子:如何从 Windows Terminal(wt) 打开 conhost 来执行命令?我来谈谈我的想法。
这个命题有点怪,我第一次看到这题目,想起来的是 之前 发现 dosbox 的控制台在 wt 下一直有显示错误, 我最初一怒之下卸了 wt,才找回原来的 cmd 控制台(也就是 conhost), 不过这不应该是我们讨论的范畴,每个问题一般都有它的考量,我们还是应该注重于,这一点能不能做到。
从 wt 打开 conhost 其实不难,PowerShell 或 cmd 下,用 start
就可以:
start conhost
有一点需要说明,对于 PowerShell 来说,这个 start
其实是 Start-Process
,不过,其实并不影响后续的使用。
打开 conhost 并不是我们的目的,我们要在 conhost 中执行一些命令,这样的话,把命令写进批处理文件似乎不错。比如我们写了下面一个批处理,保存在 d:\test.bat:
echo hello
pause
其实只是打印一个 hello,然后按任意键退出,为什么后面加了这个 pause
,我们稍后再说。
那么我们如何让 conhost 执行这个文件呢?一样非常简单:
start conhost d:\test.bat
当我们在命令行窗口按下任意键后,你会注意到,conhost 自己退出了,
现在你应该知道为什么我要加一个 pause
在最后了:执行完批处理文件后 conhost 会自动退出,
所以有 pause
我们可以观察一下输出结果。
如果需要在 Windows Terminal 下打开原始的命令行 conhost 并执行一些命令,我们可以这样做:
start conhost
来执行其实还有一些未知的地方,比如,如何给批处理文件传递参数,有关 conhost 我还知之甚少, 过了几次也没有试出来结果,就先放一放吧。