制作和显示与命令提示符相同的信息



在我之前关于堆栈的问题中,我们确定了我的命令应该像这样运行。

(& C:GybGyb.exe --email $DestinationGYB --action restore --local-folder $GYBFolder --label-restored $GYBLabel --service-account)

这样做的问题是,如果我在命令提示符中运行相同的命令,我会看到一堆状态信息。当我像上面那样运行命令时,我在VSCode中看到的是它运行了那行并等待。我怎样才能让它像命令提示符一样显示而不打开一个新窗口?

为GYBhttps://github.com/jay0lee/got-your-back

如果您希望同时看到输出,请删除命令周围的括号()。否则,此行为是预期的,并且不是VSCode终端所独有的。


组表达式操作符()用于控制PowerShell中代码执行的顺序。表达式的求值方式类似于数学中的运算顺序(即:PEMDAS),最里面的括号首先求值。还可以使用group-expression操作符从组中返回的表达式调用属性或方法。

问题是,组表达式不直接输出到父级,只有当组表达式执行完成时才会输出。所以当你有一些东西可以运行几分钟甚至几个小时,比如gyb.exe,你不会看到输出,直到命令退出并继续执行。

与在group-expression外运行形成对比;当STDOUT写入成功流时,成功流到达时立即写入控制台。没有额外的机制来代理输出。

注意:对于子表达式操作符$(),您也会遇到几乎相同的行为,但是不要将子表达式和组表达式混为一谈,因为它们的用途不同。以下是
分组运算符( )的官方解释链接子表达式操作符$()

最新更新