-1

Я хочу записать некоторые заметки в файл .bat. Какие коды можно добавить в заметки, чтобы они не рассматривались как команды для запуска?

2 ответа2

5

В сценариях 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 .

Источник, использующий переменные в качестве комментариев

2

Вы можете просто добавить в конец файла, если последний код - 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..

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .