Команда REM является встроенной командой интерпретатора команд cmd.exe и применяется для создания комментариев в командных файлах. Строка, начинающаяся с REM, не обрабатывается командным интерпретатором и может использоваться для пояснений, заметок и т.п., что бывает очень не лишним в сложных bat-файлах. Иногда, в качестве альтернативы команде REM используются приемы, основанные на особенностях реализации командного процессора cmd.exe, как, например, двойное двоеточие:
@ECHO OFF :: :: Начало работы REM REM Продолжение работы Echo Hello REM Этот текст будет полностью отображен командой ECHO Echo Hello & REM Отобразить "Hello" командой echo Copy 1.bat 2.bat & :: Копирование файла 1.bat в 2.bat pause
Команда REM с пустой строкой обычно используется для выделения отдельных фрагментов командных файлов. При использовании в цепочке с другой командой с помощью амперсанда & позволяет поместить комментарий в ту же строку, что и исполняемая команда:
сopy 1.bat 2.bat & rem Копирование файла 1.bat в 2.bat
Или
сopy 1.bat 2.bat & :: Копирование файла 1.bat в 2.bat
Такая конструкция позволяет поместить комментарий к отдельной команде bat-файла.
В качестве аналога пустой команды REM может использоваться пустая строка, которая так же игнорируется командным процессором CMD.
Строго говоря, двойное двоеточие не является документированной командой интерпретатора команд, а является следствием свойств меток в командных файлах, которые начинаются с двоеточия. Пользоваться подобным способом комментирования стоит с осторожностью, поскольку это может привести к непредсказуемым результатам при его применении в команде FOR или внутри фрагментов командного файла, заключенных в скобки.
Иногда для создания комментариев используется прием, основанный на применении команды безусловного перехода GOTO, размещенной в самом начале командного файла на метку, соответствующую первой строке исполняемых команд. Поскольку интерпретатор команд CMD обрабатывает команды командного файла последовательно, любой текст между командой GOTO и меткой будет им проигнорирован. Соответственно, в этом месте можно, например, поместить поясняющий текст либо любой иной комментарий:
REM Это большой командный файл Goto :Label1 Здесь можно разместить любой текст, который может быть подробным описанием командного файла. :label1 Rem начало исполняемой части командного файла @echo off . . .