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>

注意事项

- 延迟扩展问题:在 iffor 等代码块内使用时,需启用延迟变量展开:

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 CMD ERRORLEVEL 批处理脚本 命令行

特别声明:以上内容(如有图片或视频亦包括在内)为本平台用户上传并发布,本平台仅提供信息存储服务。

内容相关


Windows slmgr命令详解:激活与授权管理全攻略

Windows slmgr命令详解:激活与授权管理全攻略

slmgr是Software LicenseManger的简称,是Windows软件授权管理工具,slmgr是管理系统激活和密钥、证书的主要组件

9