gpt4 book ai didi

powershell - 为什么 Powershell ISE 显示 Powershell 控制台不显示的错误?

转载 作者:行者123 更新时间:2023-12-02 23:38:36 25 4
gpt4 key购买 nike

我在 Powershell ISE(手动加载脚本并按 F5)和 Powershell 控制台(执行脚本文件)中运行完全相同的 script.ps1 文件。 它们都可以工作,但 ISE 显示控制台不显示的错误。为什么?

代码是:

git push origin master
Write-Host "lastExitCode: $lastExitCode Last command was successful: $?"

此代码在 ISE 中输出此错误:

git.cmd : Initializing to normal mode
At E:\script.ps1:28 char:4
+ git <<<< push origin master
+ CategoryInfo : NotSpecified: (Initializing to normal mode:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

Initializing to normal mode

Everything up-to-date

lastExitCode: 0 Last command was successful: False

在控制台中:

Everything up-to-date
lastExitCode: 0 Last command was successful: True

可以看到成功状态也不一样。

最佳答案

我不知道为什么它们的输出不同,但是我们从 git Push 看到的消息是通过 stderr 传递的。这意味着它们显示错误,尽管 ISE 使它们的声音更大,并将其转换为错误对象

考虑 PowerShell 提示符的以下输出:

PS> git push
Everything up-to-date
PS> git push 2> $null # Redirect stderr to $null
PS> $LastExitCode
1
PS>

并将其与 ISE 进行比较:

PS> git push
git : Everything up-to-date
At line:1 char:1
+ git push
+ ~~~~~~~~
+ CategoryInfo : NotSpecified: (Everything up-to-date:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
PS> git push 2> $null
PS> $LastExitCode
1
PS>

除了显示的错误对象的额外输出之外,输出是相同的。 ISE 已将 stderr 字符串转换为 NativeCommandError 对象,如果您查看红色,它甚至会显示错误消息。

关于powershell - 为什么 Powershell ISE 显示 Powershell 控制台不显示的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com