我找到了
$(Invoke-Expression hostname) -eq 'mycomputername'
是否匹配,exitcode必须为0 这种行为与linux不同,即如果不匹配错误代码退出1
如果与字符串不匹配,PowerShell中是否有任何短命令可以返回错误退出代码?
答案 0 :(得分:9)
在脚本中,您可以使用exit
关键字更改退出代码。
正常终止将exitcode设置为0
未被捕获的THROW
会将exitcode设置为1
EXIT
语句将停止进程并将exitcode设置为指定的任何内容。
在你的情况下,我会做这样的事情
if ( $(hostname) -eq 'mycomputername')
{
exit 0
}
else
{
exit 1
}
答案 1 :(得分:1)
你试过了吗?
[int]('hostname' -eq $hostname)
这返回0表示false,1表示true表示。 但最好继续使用返回的布尔值?
答案 2 :(得分:0)
你在找这样的东西吗?
C:\>powershell -command "& { if($(Invoke-Expression hostname) -eq 'wrongname'){ exit 0 } else { exit 1 } } "
C:\>echo %errorlevel%
1
C:\>powershell -command "& { if($(Invoke-Expression hostname) -eq 'rightname'){ exit 0 } else { exit 1 } } "
C:\>echo %errorlevel%
0
答案 3 :(得分:0)
如果你想要它更简洁,
powershell -command "& { if($(Invoke-Expression hostname) -ne 'wrongname'){ exit 1 } }"
答案 4 :(得分:0)
次要更新,您现在可以简化这一点:
powershell -command "if($(Invoke-Expression hostname) -ne 'wrongname'){ exit 1 }"
echo Error=%ERRORLEVEL%