我正在从批处理脚本调用PowerShell脚本,并且希望将不同的错误级别传递给后者。
考虑这个小例子:
outer.bat
@ECHO OFF
powershell ./inner.ps1
echo Errorlevel %ERRORLEVEL%!
PAUSE
inner.ps1
$tomatoes = Read-Host "How many tomatoes (1,2,3)?"
if ($tomatoes -eq "1") {
Write-Host "Exiting with 1!"
exit 1
}
elseif ($tomatoes -eq "2") {
Write-Host "Exiting with 20!"
exit 20
}
elseif ($tomatoes -eq "3") {
Write-Host "Exiting with 300!"
exit 300
}
else {
Write-Host "Exiting without anything!"
exit
}
执行exit
时,批处理脚本将得到ERRORLEVEL
中的0
。 在所有其他情况下,它的值为1
。不是20
,不是300
。这是为什么?我可以以某种方式更改它吗?