单行顺序执行(&分隔符)
echo 第一条命令 & echo 第二条命令 & calc.exe
- 作用:无论前一条命令是否成功,后续命令都会执行。
- 场景:批量创建文件后启动程序:
mkdir C:\Logs & type NUL > C:\Logs\error.txt & notepad.exe 
条件执行(&& 和 )
- 成功时执行(&&):dir C:\Target && echo "目录存在,继续操作" 
- 失败时执行():
ping 192.0.2.0 || echo "网络连接失败!" 
- 混合使用:
mklink D:\Symlink C:\Source && echo "链接创建成功" || echo "链接创建失败" 
多行书写(自然换行)
@echo off echo 开始执行任务 xcopy /s C:\Source D:\Backup shutdown /r /t 60
- 特点:每条命令独立一行,按顺序执行。
- 注意:前一条命令报错可能导致后续命令终止(除非用call或start)。
命令分组( 组合)
   (
     echo 当前时间: %time%
     ping localhost -n 3 >nul
     echo 任务完成
   ) >> log.txt
- 用途:将多条命令的输出重定向到同一文件,或作为整体进行条件判断:
(findstr "error" log.txt && echo 发现错误) || echo 无错误 
调用子流程(call命令)
- 
调用其他批处理文件: call "C:\Scripts\cleanup.bat" 
- 
调用当前文件内的标签: call :subroutine exit /b :subroutine echo 子流程执行中... goto :eof 
异步执行(start命令)
start notepad.exe start /B wmplayer.exe echo 两个程序已后台启动
- 参数说明:
- 不加/B:新开窗口运行(异步)。
- 加/B:后台运行(不显示窗口)。
 
- 不加
⚠️ 关键注意事项
- 
错误处理: - 用  捕获错误:net user Admin || echo 用户不存在 > error.log
- 启用错误继续:cmd /c "错误命令 || 正确命令"
 
- 用  捕获错误:
- 
变量延迟扩展: 
 循环中修改变量需启用setlocal enabledelayedexpansion:setlocal enabledelayedexpansion for %%i in (1,2) do ( set count=%%i echo 当前值: !count! ) 
- 
特殊字符转义: 
 包含&, ,>等符号时需用^转义:echo 特殊符号^>需转义 ^& 处理
▶️ 最佳实践总结
| 需求 | 推荐方法 | 示例 | 
|---|---|---|
| 简单顺序执行 | &或 多行书写 | 命令1 & 命令2 | 
| 依赖前序命令成功 | && | 命令1 && 命令2 | 
| 组合命令输出/重定向 | 分组 | (命令1 & 命令2) > output.txt | 
| 模块化代码 | call调用 | call :subroutine | 
| 并行启动程序 | start | start /B 程序.exe | 
引用说明:本文内容参考Microsoft官方文档《Windows Command-Line》及实践经验总结,批处理命令行为可能因Windows版本差异略有不同,建议在目标环境中测试。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9354.html
 
                 
        