CMD错误处理:巧用%ERRORLEVEL%优化批处理脚本

掌握Windows CMD中%ERRORLEVEL%的使用方法,结合&&、||和延迟扩展技巧,实现批处理脚本的错误判断与流程控制。
在 Windows 命令提示符(CMD)中,通过 %ERRORLEVEL% 环境变量可判断上一条命令是否成功执行:通常 0 表示成功,非零值代表失败。以下是几种实用技巧,助你高效掌控脚本流程。
基础用法
1. 直接检查 %ERRORLEVEL%bat<br>if %ERRORLEVEL% EQU 0 (<br> echo 命令执行成功<br>) else (<br> echo 命令执行失败,错误码: %ERRORLEVEL%<br>)<br>
示例:bat<br>ping -n 1 www.google.com<br>if %ERRORLEVEL% EQU 0 (<br> echo 网络连通<br>) else (<br> echo 网络不可达<br>)<br>
进阶技巧
2. 使用 && 和 || 简化逻辑
- &&:前一条命令成功才执行后续操作
- ||:前一条命令失败时执行替代操作 bat<br>copy file1.txt file2.txt && (<br> echo 文件复制成功<br>) || (<br> echo 文件复制失败<br>)<br>
注意事项
- 延迟扩展问题:在 if 或 for 等代码块内使用时,需启用延迟变量展开:bat<br>setlocal enabledelayedexpansion<br>mkdir C:\test_dir<br>if !ERRORLEVEL! EQU 0 (<br> echo 目录创建成功<br>) else (<br> echo 失败,错误码: !ERRORLEVEL!<br>)<br>endlocal<br>
- 特殊命令返回值:部分命令(如 choice.exe)不遵循“0=成功”规则,请查阅具体文档。
- 静默执行:隐藏命令输出,提升整洁度:bat<br>some_command >nul 2>&1 && echo 成功 || echo 失败<br>
典型脚本结构
搭配 goto 实现流程控制,常用于多命令顺序执行场景:bat<br>@ECHO OFF<br>cd /d d:<br>IF %errorlevel% NEQ 0 GOTO ERROR<br>ECHO 进入D盘成功<br><br>cd /d c:<br>IF %errorlevel% NEQ 0 GOTO ERROR<br>ECHO 返回C盘成功<br><br>:OK<br>ECHO 所有操作完成<br>GOTO END<br><br>:ERROR<br>ECHO 某步操作失败<br>:END<br>@ECHO ON<br>
小贴士
查看 if /? 可了解更多条件判断语法,例如:
- IF ERRORLEVEL n:退出码 ≥ n 时为真
- IF DEFINED var:变量已定义则成立
- 使用 !ERRORLEVEL! 替代 %ERRORLEVEL% 避免延迟展开错误
掌握这些方法,轻松实现批处理脚本的智能流程控制!
内容相关

Windows slmgr命令详解:激活与授权管理全攻略
slmgr是Software LicenseManger的简称,是Windows软件授权管理工具,slmgr是管理系统激活和密钥、证书的主要组件
9







