是否忽略powershell批处理文件中的一行?

是否忽略powershell批处理文件中的一行?,powershell,batch-file,Powershell,Batch File,假设我有以下批处理文件,名为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

假设我有以下批处理文件,名为
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由包装器运行多次,因此每次成功运行时,它都会输出
退出代码0

我可以通过powershell忽略openPS.bat中的这一行吗

EXIT /B %ErrorLevel%
:end
echo Exit Code: %ERRORLEVEL%
echo Success!

我知道我可以
REM
it,但我需要在script.ps1的所有循环完成后输出一条成功消息。所以它必须保留,我找不到任何方法来抑制所有退出代码0。如果在powershell脚本中使用
out null
,则会丢失所有其他输出,因此
out null
不是一个选项

使用包装器脚本指示完成,而不是检查并显示每个迭代的“成功!”。屏幕将仅显示故障和完成消息

您还可以在包装器脚本中使用一个变量来跟踪返回值,一个简单的求和将起作用,并在所有迭代执行完成时测试它的
0
。然后显示成功或失败

@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!

:end
EXIT /B %errorlevel%

您打算如何处理错误(退出代码0)?@AnsgarWiechers这就是为什么out null对我不起作用,因为它会忽略错误。我看到的唯一选择是直接忽略批处理文件中的成功行,现在我认为应该忽略它……只要返回一个错误代码(0或1),就不需要指示成功