Я хочу записать некоторые заметки в файл .bat. Какие коды можно добавить в заметки, чтобы они не рассматривались как команды для запуска?
2 ответа
В сценариях cmd.exe комментарии добавляются с использованием REM
(или @REM
для принудительного отключения отображения ).
rem This is a comment.
Хотя технически это не префикс комментария, ::
также может использоваться аналогичным образом (он определяет метку "goto", которая остается неиспользованной):
:: This is a comment.
Осторожно:
Когда метки используются в качестве комментариев в блоке кода в квадратных скобках или для команды, процессор команд ожидает, что за каждой меткой будет следовать хотя бы одна команда, поэтому при переходе к метке ему будет что выполнить.
Оболочка
cmd
попытается выполнить вторую строку, даже если она отформатирована как метка (и это вызывает ошибку):( echo This example will fail :: some comment )
При работе внутри блоков кода в квадратных скобках определенно безопаснее использовать
rem
для всех строк комментариев.
Источник, использующий ярлыки в качестве комментариев
Вы также можете использовать переменные в качестве комментариев.
Также можно использовать переменные в качестве комментариев. Это может быть полезно для условного предотвращения выполнения команд:
@echo off setlocal if /i "%~1"=="update" (set _skip=) Else (set _skip=REM) %_skip% copy update.dat %_skip% echo Update applied ...
При использовании приведенного выше фрагмента кода в пакетном файле строки, начинающиеся с
%_skip%
выполняются только в том случае, если пакетный файл вызывается с параметромupdate
.
Вы можете просто добавить в конец файла, если последний код - Goto :Eof
Cmd не заботится о строках, до которых код никогда не доходит. С помощью уникального маркера сама партия может определить начало текста и отобразить, используя больше.
@Echo off
For /f "tokens=1 delims=:" %%A in (
'findstr /N "^@@@" "%~f0"'
) Do Set TxtBegin=%%A
:: Echo TxtBegin=%TxtBegin%
More +%TxtBegin% "%~f0"
Pause
Goto :Eof
@@@Begin of text
Here Comes the Sun
The Beatles
Here comes the sun (doo doo doo doo)
Here comes the sun, and I say
It's all right
Little darling, it's been a long cold lonely winter
Little darling, it feels like years since it's been here
Here comes the sun
Here comes the sun, and I say
..snip..