Pak*_*Pak 7 windows error-handling batch-file
我有一个命令(我们称之为command),它打印到标准输出,并且还会根据执行的成功或失败设置 ERRORLEVEL 。我想command从将处理 的输出的批处理脚本中调用command,但前提是以commandERRORLEVEL 为 0 退出(即成功)。这最好不需要临时文件或检查命令的输出来推断它是否成功。
我可以使用for语句捕获命令的输出,但在执行此操作时检查 ERRORLEVEL 时遇到问题。我尝试过类似的事情:
for /F %%A in ('command') do (
REM The following check does not seem to work
if ERRORLEVEL 1 goto error
REM otherwise, do stuff with %%A
)
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用%errorlevel%and !errorlevel!(with setlocal enabledelayedexpansion),但都不起作用。
使用如下代码:
@echo off
"command.exe">"%TEMP%\CommandOutput.tmp"
if errorlevel 1 goto Failed
for /F "usebackq" %%A in ("%TEMP%\CommandOutput.tmp") do (
REM Do stuff with %%A
echo %%A
)
goto DelTempFile
:Failed
echo There was an error on executing command.
:DelTempFile
if exist "%TEMP%\CommandOutput.tmp" del "%TEMP%\CommandOutput.tmp"
Run Code Online (Sandbox Code Playgroud)
此批处理代码首先运行命令,并将标准输出重定向到临时文件文件夹中的文件。接下来,它评估命令的退出代码。
如果没有错误,则使用for处理输出。
出现错误时会显示相应的错误消息。
最后,在批处理终止之前删除包含捕获输出的临时文件。
| 归档时间: |
|
| 查看次数: |
2907 次 |
| 最近记录: |