batch-file
Комментарии в пакетных файлах
Поиск…
Вступление
Комментарии используются для отображения информации в пакетном скрипте.
Синтаксис
REM
& REM
::
& ::
Перейти к: Ярлык
Comments. You can also use |>< ,etc.
:Этикетка
Использование REM для комментариев
REM This is a comment
-
REM
- официальная команда комментариев.
Использование меток в качестве комментариев
::This is a label that acts as a comment
Показанный выше двойной двойник ::
комментарий не документируется как команда комментария, но это особый случай метки, который действует как комментарий.
Внимание : когда метки используются как комментарии в блочном кодовом блоке или for
команды, процессор команд ожидает, что за каждой меткой будет следовать хотя бы одна команда, поэтому, когда на метку будет сделан переход, у нее будет что-то выполнение.
cmd
оболочка 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
может использоваться для перехода через блок простого текста (который может использоваться как комментарий блока):
@echo off
goto :start
A multi-line comment block can go here.
It can also include special characters such as | >
:start
Поскольку синтаксический анализатор никогда не видит линии между goto :start
и :start
label, он может содержать произвольный текст (включая управляющие символы без необходимости их устранения), и синтаксический анализатор не будет вызывать ошибку.
Комментарий к строке кода
Чтобы прокомментировать ту же строку, что и код, вы можете использовать &::
or &rem
. Вы также можете использовать &&
или ||
заменить &
.
Пример :
@echo off
echo This is a test &::This is a comment
echo This is another test &rem This is another comment
pause
Любопытство : команда SET
позволяет ограничить встроенные комментарии без &rem
:
set "varname=varvalue" limited inline comment here
Ограничения:
- синтаксис с двойными кавычками
set "varname=varvalue"
илиset "varname="
, - встроенный комментарий не может содержать двойную кавычку,
- любые ядовитые символы
cmd
| < > &
должен быть правильно экранирован как^| ^< ^> ^&
, - Скобки
( )
должны быть надлежащим образом экранированы как^( ^)
в скобках в квадратных скобках.
Групповой и WSF-гибридный комментарий
<!-- : Comment
Это работает как с пакетным скриптом, так и с WSF. Закрывающий тег ( -->
) работает только в WSF.
Код | Удовлетворительно в обеих партиях и WSF? |
---|---|
<!--: Comment | Правда |
<!--: Comment --> | False - закрывающий тег работает только для WSF |
--> | Ложь |