314*_*926 38 if-statement batch-file
如何在批处理文件中检查命令
start "" javaw -jar %~p0/example.jar
Run Code Online (Sandbox Code Playgroud)
成功或产生错误?
我想使用if/else语句来回显这个信息.
Pat*_*cke 60
这可能不起作用start,因为它开始一个新窗口,但回答你的问题:
如果该命令返回错误级别,您可以检查以下方法
按特定错误级别
commandhere
if %errorlevel%==131 echo do something
Run Code Online (Sandbox Code Playgroud)
如果出现任何错误
commandhere || echo what to do if error level ISN'T 0
Run Code Online (Sandbox Code Playgroud)
如果没有错误
commandhere && echo what to do if error level IS 0
Run Code Online (Sandbox Code Playgroud)
如果它没有返回错误级别但确实给出了输出,你可以在变量中捕获它并通过输出确定示例(注意令牌和delim只是示例,可能会因任何特殊字符而失败)
通过解析完整输出
for /f "tokens=* delims=" %%a in ('somecommand') do set output=%%a
if %output%==whateveritwouldsayinerror echo error
Run Code Online (Sandbox Code Playgroud)
或者您可以在输出中查找单个短语,如单词Error
通过检查字符串
commandhere | find "Error" || echo There was no error!
commandhere | find "Error" && echo There was an error!
Run Code Online (Sandbox Code Playgroud)
你甚至可以混合在一起(只记得逃脱|与^|如果在一个for声明中)
希望这可以帮助.
Joe*_*oey 32
您可以使用
if errorlevel 1 echo Unsuccessful
Run Code Online (Sandbox Code Playgroud)
在某些情况下.这取决于最后一个返回正确退出代码的命令.即使出现异常情况,如果程序正常返回,也无法判断是否有任何错误.
jse*_*ars 10
大多数命令/程序在成功时返回0,并调用其他一些值errorlevel来表示错误.
您可以批量检查,例如:
call <THE_COMMAND_HERE>
if %ERRORLEVEL% == 0 goto :next
echo "Errors encountered during execution. Exited with status: %errorlevel%"
goto :endofscript
:next
echo "Doing the next thing"
:endofscript
echo "Script complete"
Run Code Online (Sandbox Code Playgroud)
天哪,我很难找到答案......这里是:
cd thisDoesntExist
if %errorlevel% == 0 (
echo Oh, I guess it does
echo Huh.
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101428 次 |
| 最近记录: |