Powershell:如果与字符串不匹配,则返回错误退出代码

时间:2014-02-20 07:47:02

标签: powershell

我找到了

$(Invoke-Expression hostname) -eq 'mycomputername'

是否匹配,exitcode必须为0 这种行为与linux不同,即如果不匹配错误代码退出1

如果与字符串不匹配,PowerShell中是否有任何短命令可以返回错误退出代码?

5 个答案:

答案 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%