【发布时间】:2019-02-25 22:11:31
【问题描述】:
假设我有以下批处理文件,名为openPS.bat:
@echo off
SET psFile="%1"
Powershell.exe -ExecutionPolicy ByPass -File %psFile% %2 %3 %4 %5
if %errorlevel% NEQ 0 GOTO :error
GOTO :end
:error
echo Exit Code: %ERRORLEVEL%
echo Failed!
EXIT /B %ErrorLevel%
:end
echo Exit Code: %ERRORLEVEL%
echo Success!
此批处理文件用于在 CMD 控制台中运行 powershell 脚本:
C:> openPS.bat script.ps1
script.ps1被一个wrapper多次运行,所以每次运行成功,都会输出exit code 0
我可以通过 powershell 以某种方式忽略 openPS.bat 中的这一行吗?
EXIT /B %ErrorLevel%
:end
echo Exit Code: %ERRORLEVEL%
echo Success!
我知道我可以REM 它但我需要在 script.ps1 的所有循环完成后输出一条成功消息。所以它必须保留,我发现没有办法抑制所有这些退出代码 0。如果我在 powershell 脚本中使用out-null,我会丢失所有其他输出,所以out-null 不是一个选项。
【问题讨论】:
-
你打算如何处理错误(退出代码 0)?
-
@AnsgarWiechers 这就是为什么 out-null 对我不起作用,因为它会忽略错误。我看到的唯一选择是以某种方式直接从批处理文件中忽略该成功行
标签: powershell batch-file