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 |
--> | Ложь |