Istnieje wiele sposobów komentowania w pliku wsadowym
1) Korzystanie z rem
To jest oficjalny sposób. Najwyraźniej trwa dłużej niż ::
, choć najwyraźniej przestaje się analizować wcześniej, zanim zostaną przetworzone instrukcje. Wzrost procentowy następuje przed rem i ::
jest identyfikowany, więc nieprawidłowe użycie procentowe, tj. %~
Spowoduje błędy, jeśli procent będzie obecny. Bezpieczny w użyciu w dowolnym miejscu w blokach kodu.
2) Za pomocą etykiet :
, ::
lub :;
etc.
Ponieważ :: comment
„: komentarz” jest nieprawidłową nazwą etykiety, ponieważ zaczyna się od niepoprawnego znaku. Można jednak używać dwukropka na środku etykiety. Jeśli przestrzeń zaczyna się na początku etykiecie, jest on usuwany : label
staje :label
. Jeśli na środku etykiety pojawi się spacja lub dwukropek, reszta nazwy nie zostanie zinterpretowana, co oznacza, że jeśli istnieją dwie etykiety :f:oo
i :f rr
obie zostaną zinterpretowane jako :f
i tylko do później zdefiniowanej etykiety w pliku zostanie przeniesiona. Reszta etykiety jest faktycznie komentarzem. Istnieje wiele alternatyw ::
, wymienionych tutaj . Nigdy nie można goto
lub etykieta. i nie będzie działać.call
::foo
goto :foo
goto ::foo
Działają dobrze poza blokami kodu, ale po etykiecie w bloku kodu, niepoprawnej lub nie, musi istnieć poprawny wiersz polecenia. :: comment
jest rzeczywiście innym ważnym poleceniem. Interpretuje to jako polecenie, a nie etykietę; polecenie ma pierwszeństwo. Które jest poleceniem cd do ::
woluminu, który zadziała, jeśli wykonałeś subst :: C:\
, w przeciwnym razie nie będzie można znaleźć błędu woluminu. Dlatego :;
jest prawdopodobnie lepszy, ponieważ nie można go interpretować w ten sposób, a zatem jest interpretowany jako etykieta, która służy jako prawidłowe polecenie. Nie jest to rekurencyjne, tzn. Następna etykieta nie wymaga polecenia po niej. Dlatego przychodzą dwójkami.
Musisz podać prawidłowe polecenie po etykiecie, np echo something
. Etykieta w bloku kodu musi zawierać co najmniej jedno prawidłowe polecenie, więc linie występują w parach po dwie. Otrzymasz nieoczekiwany )
błąd, jeśli w następnym wierszu znajduje się spacja lub nawias zamykający. Jeśli między dwiema ::
liniami jest spacja , pojawi się nieprawidłowy błąd składniowy.
Możesz także użyć operatora karetki w ::
komentarzu w następujący sposób:
@echo off
echo hello
(
:;(^
this^
is^
a^
comment^
)
:;
)
:;^
this^
is^
a^
comment
:;
)
Ale potrzebujesz podążania :;
z podanego powyżej powodu.
@echo off
(
echo hello
:;
:; comment
:; comment
:;
)
echo hello
Jest w porządku, o ile jest parzysta liczba. Jest to bez wątpienia najlepszy sposób komentowania - z 4 liniami i :;
. Ze :;
nie dostaniesz wszelkie błędy, które muszą być tłumione za pomocą 2> nul
lub subst :: C:\
. Możesz użyć, subst :: C:\
aby błąd nie znaleziono woluminu zniknął, ale oznacza to, że będziesz musiał również wstawić C: w kodzie, aby zapobiec zmianie katalogu roboczego ::\
.
Do komentarza na końcu wiersza można zrobić,
command &::
albo command & rem comment
, ale wciąż musi być numer nawet, tak jak poniżej:
@echo off
(
echo hello & :;yes
echo hello & :;yes
:;
)
echo hello
Pierwszy echo hello & :;yes
ma prawidłowe polecenie w następnym wierszu, ale drugi & :;yes
nie, więc potrzebuje jednego, tj :;
.
3) Używanie niepoprawnej zmiennej środowiskowej
%= comment =%
. W pliku wsadowym niezdefiniowane zmienne środowiskowe są usuwane ze skryptu. Umożliwia to używanie ich na końcu linii bez użycia &
. Zwyczajowo używa się niepoprawnej zmiennej środowiskowej, tj. Zawierającej znak równości. Dodatkowa równość nie jest wymagana, ale sprawia, że wygląda symetrycznie. Ponadto nazwy zmiennych rozpoczynające się od „=” są zarezerwowane dla nieudokumentowanych zmiennych dynamicznych. Te zmienne dynamiczne nigdy nie kończą się na „=”, więc używając „=” zarówno na początku, jak i na końcu komentarza, nie ma możliwości kolizji nazw. Komentarz nie może zawierać %
lub :
.
@echo off
echo This is an example of an %= Inline Comment =% in the middle of a line.
4) Jako polecenie przekierowuję stderr na nul
@echo off
(
echo hello
;this is a comment 2> nul
;this is another comment 2> nul
)
5) Na końcu pliku wszystko po niezamkniętym nawiasie jest komentarzem
@echo off
(
echo hello
)
(this is a comment
this is a comment
this is a comment