PowerShell 中 $Lastexitcode 和 $? 变量有哪些用途?
Powershell 中的$LastExitCode 是表示最后执行的脚本或应用程序的退出代码/错误级别的数字,$? (美元钩子) 也表示最后一条命令的成功或失败。一般来说,两者表示相同的内容,但输出方式不同。第一个命令的输出以数字格式(0 和 1) 输出,而后一个命令的输出则以布尔(真或假)格式输出。
例如,
PS C:\WINDOWS\system32> $LASTEXITCODE 0 PS C:\WINDOWS\system32> $? True
如你所见,输出中0 表示 $LastExitCode 命令的成功状态,而$? 为真。
现在,如果该命令无法成功运行,那么你会得到这两个命令的什么输出。查看下面的示例。
PS C:\WINDOWS\system32> ping anyhost.test Ping request could not find host anyhost.test. Please check the name and try again. PS C:\WINDOWS\system32> $LASTEXITCODE 1 PS C:\WINDOWS\system32> $? True
如果你在执行过程中终止了任何命令的输出,$lastexitcode 将会不同,但$? 命令的输出将为真,因为该命令存在并且它能够解析域名。
PS C:\WINDOWS\system32> ping google.com Pinging google.com [172.217.166.174] with 32 bytes of data: Reply from 172.217.166.174: bytes=32 time=30ms TTL=55 Ping statistics for 172.217.166.174: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 30ms, Maximum = 30ms, Average = 30ms Control-C PS C:\WINDOWS\system32> $LASTEXITCODE -1073741510 PS C:\WINDOWS\system32> $? True
广告