rem 命令简介
rem 是英文 "Remark"(备注、注释)的缩写,它是一个在批处理脚本(.bat 或 .cmd 文件)中使用的内部命令,其主要作用是在脚本中添加注释,以解释代码的功能、目的或逻辑。

当批处理文件被执行时,系统会完全忽略 rem 后面的所有内容,直到该行结束,这就像你在阅读一本书时看到的页边注释,它对故事发展没有影响,但能帮助你更好地理解。
基本语法
rem [这是你的注释内容]
rem:命令关键字。[这是你的注释内容]:你想要添加的任何文本,这部分内容是可选的,但通常为了清晰,都会写上。
示例:
创建一个名为 test.bat 的文件,内容如下:
@echo off echo 程序开始... rem 这行注释会显示“Hello, World!” echo Hello, World! rem 下面的命令用于暂停脚本执行,方便查看输出 pause
当你运行 test.bat 时,屏幕上会显示:

程序开始...
Hello, World!
请按任意键继续. . .
你会注意到,注释行本身并没有被显示出来。
rem 的主要用途
-
解释代码:这是最常见的用途,解释某一行或某几行代码是做什么的,方便自己或他人日后维护脚本。
rem ============================================== rem 文件名: backup.bat rem 功能: 每日备份指定文件夹到D盘 rem 创建日期: 2025-10-27 rem ==============================================
-
临时禁用代码:当你不想执行某一行或某几行代码,但又不想永久删除它们时,可以在这些代码前加上
rem,这是一种非常方便的调试方法。echo 正在执行主要任务... rem echo 这行代码现在被暂时禁用了,不会执行。 echo 主要任务执行完毕。
-
增加脚本的可读性:对于复杂的脚本,使用
rem可以将代码分成不同的逻辑块,使其结构更清晰,易于理解。
(图片来源网络,侵删)
rem 的注意事项和替代方案
虽然 rem 很好用,但在某些情况下,有更优的选择。
使用 作为注释符
在批处理脚本中,你也可以使用两个冒号 () 来创建注释,这是一种非常流行的替代方法。
@echo off echo 程序开始... :: 这也是一行注释,功能与 rem 相同 echo Hello, World! :: 暂停脚本执行 pause
rem 和 的区别:
| 特性 | rem |
|
|---|---|---|
| 本质 | 一个标准的 DOS 命令 | 一个标签(Label),但因其后通常不跟有效标签名而被解释为注释 |
| 可执行性 | rem 本身是一个命令,可以被 @echo off 隐藏 |
不是一个命令,所以即使在 @echo off 下, 本身有时也会被回显(取决于命令解析器版本) |
| 位置限制 | rem 后面必须跟一个空格才能开始注释 |
后面可以不跟空格,直接跟注释内容,更简洁 |
| 适用场景 | 通用,在任何地方都可以使用 | 在脚本中更常用,尤其是在行首,代码更整洁 |
推荐:
- 对于简单的单行注释, 因为其简洁性而更受青睐。
rem更传统,并且其“命令”身份在某些特殊情况下(例如在if语句的else分支)可能更清晰。
使用 if 假注释
这是一种更高级的技巧,可以创建“空注释”行,即一行只有注释内容,没有任何命令字符(如 rem 或 )。
@echo off
echo 程序开始...
if 1==1 (
echo 这是一个真的条件分支。
) else (
echo 这是一个注释行,因为它在 else 块中且永远不会被执行。
)
pause
在上面的例子中,else 块中的 echo 行永远不会执行,所以它起到了注释的作用,这种方法不常用,但在特定排版下可以实现没有前缀的注释行。
| 命令 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
rem |
标准命令,清晰易懂,功能纯粹 | 代码稍长(需要 rem 关键字和空格) |
需要明确表示这是“备注”时;在 else 等复杂结构中保持清晰 |
| 代码简洁,无需空格,是批处理中的“行规” | 在某些旧版或特定解析器下可能被回显 | 绝大多数情况下的首选,尤其是在行首添加注释 |
rem 是批处理脚本中一个基础且至关重要的命令,它通过添加注释来提升代码的可读性和可维护性,虽然 在现代脚本中更流行,但理解 rem 的工作原理仍然是掌握 DOS 批处理的基础。
