命令是干什么的
echo 负责三件事:显示文本、控制批处理是否回显每条命令、输出空行。它是批处理日志与用户提示的基础:首行 @echo off 关掉命令回显,中间用 echo 打印进度与变量值,echo. 输出空行分隔段落。
为什么要写 @echo off
批处理默认会把每条执行的命令原样打印出来,输出里命令与结果混杂,日志难以阅读。行首的 @ 表示这一行本身不回显,因此第一行写 @echo off 既关闭后续回显,也不打印这条命令自己,这是几乎所有 .bat 脚本的第一行。
基本信息
| 适用平台 | Windows 全版本 CMD(Windows 7/10/11 与各版 Server) |
|---|---|
| 语法 | echo [on|off|文本];echo. 输出空行;@echo off 关闭命令回显 |
| 常见用途 | 打印进度与变量、控制回显、输出空行 |
| 变量输出 | echo %变量%;变量未定义时原样输出 %变量% |
典型使用场景
- 批处理首行关闭回显,让日志只保留有用输出
- 打印当前时间与执行阶段,便于事后定位失败位置
- 输出变量值,核对参数传递是否正确
- 用空行分隔日志段落,提升长日志的可读性
- 向交互用户给出进度或确认提示
常用示例
常用示例
@echo off # 关闭回显,且本行也不显示
echo ==== 备份开始 ====
echo 当前时间: %date% %time%
echo.
echo 错误码: %ERRORLEVEL%
echo 脚本目录: %~dp0写法读法
| 写法 | 作用 | 说明 |
|---|---|---|
| @echo off | 关闭后续命令回显 | 首选写在批处理第一行 |
| echo 文本 | 输出文本 | 显示到控制台或日志文件 |
| echo. | 输出空行 | 点号必须紧跟 echo,中间不能有空格 |
| echo off | 关闭回显 | 单独执行会显示自身的回显状态 |
| echo %var% | 输出变量 | 变量未定义时原样输出 %var% |
| echo ^& | 输出特殊字符 | & | > < 等需用 ^ 转义 |
echo off 之后的命令不再回显;要让这条命令本身也不显示,用 @echo off,两者常一起写在批处理第一行。需要写入文件时配合重定向,例如 echo 内容 >> log.txt 追加记录。
echo 文本含 & | > < 等特殊字符时会被当作重定向或管道解释:必须用 ^ 转义或整体加引号,否则轻则输出错误,重则误写文件。