batch-file
Opmerkingen in batchbestanden
Zoeken…
Invoering
Opmerkingen worden gebruikt om informatie in een batchscript weer te geven.
Syntaxis
REM
& REM
::
& ::
Ga naar: Label
Comments. You can also use |>< ,etc.
:Etiket
REM gebruiken voor opmerkingen
REM This is a comment
-
REM
is het officiële commentaarcommando.
Labels gebruiken als opmerkingen
::This is a label that acts as a comment
De dubbele dubbele punt ::
opmerking hierboven is niet gedocumenteerd als een opmerkingopdracht, maar het is een speciaal geval van een label dat als opmerking fungeert.
Let op : wanneer labels worden gebruikt als opmerkingen binnen een codeblokje tussen haakjes of for
opdracht, verwacht de opdrachtprocessor dat elk label wordt gevolgd door ten minste één opdracht, dus als er een sprong naar het label wordt gemaakt, moet er iets worden uitgevoerd.
De cmd
shell probeert de tweede regel uit te voeren, zelfs als deze is opgemaakt als een label (en dit veroorzaakt een fout ):
(
echo This example will fail
:: some comment
)
Wanneer u werkt tussen codeblokjes tussen haakjes, is het absoluut veiliger om REM voor alle commentaarregels te gebruiken.
Variabelen gebruiken als opmerkingen
Het is ook mogelijk om variabelen als commentaar te gebruiken. Dit kan handig zijn om voorwaardelijk te voorkomen dat opdrachten worden uitgevoerd:
@echo off
setlocal
if /i "%~1"=="update" (set _skip=) Else (set _skip=REM)
%_skip% copy update.dat
%_skip% echo Update applied
...
Wanneer u het bovenstaande codefragment in een batchbestand gebruikt, worden de regels die beginnen met %_skip%
alleen uitgevoerd als het batchbestand wordt aangeroepen met update
als parameter.
Reacties blokkeren
Het batchbestandsformaat heeft geen syntaxis voor blokcommentaar, maar hiervoor is een gemakkelijke oplossing.
Normaal wordt elke regel van een batchbestand gelezen en vervolgens uitgevoerd door de parser, maar een goto
instructie kan worden gebruikt om voorbij een blok gewone tekst te springen (die kan worden gebruikt als blokopmerking):
@echo off
goto :start
A multi-line comment block can go here.
It can also include special characters such as | >
:start
Omdat de parser nooit de lijnen tussen de goto :start
instructie en :start
label ziet, kan het willekeurige tekst bevatten (inclusief controletekens zonder dat deze hoeven te ontsnappen) en zal de parser geen foutmelding geven.
Commentaar op de regel van de code
Om op dezelfde regel als de code te reageren, kunt u &::
of &rem
. U kunt ook &&
of ||
om &
te vervangen.
Voorbeeld:
@echo off
echo This is a test &::This is a comment
echo This is another test &rem This is another comment
pause
Een nieuwsgierigheid : SET
opdracht maakt beperkte inline-opmerkingen mogelijk zonder &rem
:
set "varname=varvalue" limited inline comment here
beperkingen:
- syntaxis met dubbele aanhalingstekens
set "varname=varvalue"
ofset "varname="
, - een inline reactie mag geen dubbele aanhalingstekens bevatten,
-
cmd
giftige tekens| < > &
moet correct zijn ontsnapt als^| ^< ^> ^&
, - haakjes
( )
moeten op de juiste manier zijn ontsnapt als^( ^)
binnen een codeblokje tussen haakjes.
Batch en WSF hybride reactie
<!-- : Comment
Dit werkt met zowel batch-script als WSF. De afsluitende tag ( -->
) werkt alleen in WSF.
Code | Succesvol in zowel batch als WSF? |
---|---|
<!--: Comment | waar |
<!--: Comment --> | False - De afsluitende tag werkt alleen voor WSF |
--> | vals |