Jak "skomentować" (dodać komentarz) w partii / cmd?
Mam plik wsadowy, który uruchamia kilka skryptów Pythona, które modyfikują tabelę.
Chcę, aby użytkownicy komentowali Skrypty Pythona 1-2, których nie chcą uruchamiać, zamiast usuwać je z pliku wsadowego (aby następny użytkownik wiedział, że te skrypty istnieją jako opcje!)
Chcę również dodać komentarze, aby zwrócić ich uwagę na zmienne, które muszą zaktualizować w pliku wsadowym, zanim go uruchomią. Widzę, że mogę użyć
REM
. Ale to wygląda na to, że to więcej dla aktualizacji użytkownika z postępem po uruchomieniu go.
Czy jest jakaś składnia do poprawnego dodawania komentarza?
7 answers
Komenda rem
rzeczywiście służy do komentowania. Nie aktualizuje nikogo po uruchomieniu skryptu. Niektórzy autorzy skryptów mogą używać go w ten sposób zamiast echo
, ponieważ domyślnie interpreter wsadowy wypisuje każde polecenie przed jego przetworzeniem. Ponieważ polecenia rem
nic nie robią, można je bezpiecznie drukować bez skutków ubocznych. Aby uniknąć drukowania polecenia, należy dodać prefiks @
lub, aby zastosować to ustawienie w całym programie, uruchomić @echo off
. (To echo off
to unikaj drukowania kolejnych poleceń; @
ma na celu uniknięcie drukowania tego polecenia przed włączeniem ustawienia echo.)
Więc w pliku wsadowym możesz użyć tego:
@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-29 21:49:47
your commands here :: commenttttttttttt
Lub
your commands here REM commenttttttttttt
Uwagi:
W logice zagnieżdżonej(
IF-ELSE
,FOR
pętle itp...)::
odpala błąd, więc użyjREM
tam lub uciec używając znaku^
, np.^(
Oraz^)
W szczególnych przypadkach (jeśli używasz go w linii), może być konieczne dodanie & znak:
& :: commenttttt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-28 20:22:51
Nie, zwykłe stare pliki wsadowe używają REM
jako komentarza. {[2] } to polecenie, które wyświetla coś na ekranie.
Do "komentowania" sekcji pliku możesz użyć GOTO
. Przykład wszystkich tych poleceń/technik:
REM it starts here the section below can be safely erased once the file is customised
ECHO Hey you need to edit this file before running it! Check the instructions inside
ECHO Now press ctrl-c to interrupt execution or enter to continue
PAUSE
REM erase the section above once you have customised the file
python executed1.py
ECHO Skipping some stuff now
GOTO End
python skipped1.py
python skipped2.py
:END
python executed2.py
Cóż mogę powiedzieć? pliki wsadowe są reliktem dawno minionych czasów, są niezgrabne i brzydkie.
Możesz przeczytać więcej na tej stronie.
EDIT: zmodyfikowałem trochę przykład, aby zawierał elementy, których najwyraźniej szukasz za.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-29 22:01:22
:: zamiast REM był najlepiej używany w czasach, gdy komputery nie były zbyt szybkie. Przeredagowane linie są odczytywane, a następnie ingnored. :: 'linie ed są ignorowane do końca. To może przyspieszyć twój kod w "starych czasach". Więcej po REM potrzebujesz spacji, after:: you don ' t.
I jak wspomniano w pierwszym komentarzu: możesz dodać info do każdej linii, którą czujesz potrzebę
SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS
Co do pomijania części. Umieszczenie REM przed każdą linią może być dość czasochłonne. Jako wspomniane używanie GOTO do pomijania części jest łatwym sposobem na pomijanie dużych fragmentów kodu. Pamiętaj, aby ustawić etykietę :w miejscu, w którym kod ma być kontynuowany.
SOME CODE
GOTO LABEL ::REM OUT THIS LINE TO EXECUTE THE CODE BETWEEN THIS GOTO AND :LABEL
SOME CODE TO SKIP
.
LAST LINE OF CODE TO SKIP
:LABEL
CODE TO EXECUTE
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-02 21:49:08
Multi line comments
Jeśli jest duża liczba linii, które chcesz skomentować, lepiej będzie, jeśli możesz tworzyć komentarze Wielowierszowe, zamiast komentować każdą linię.
Język wsadowy nie ma bloków komentarzy, choć istnieją sposoby na osiągnięcie tego efektu.
GOTO EndComment1
This line is comment.
And so is this line.
And this one...
:EndComment1
Możesz użyć GOTO
Label i :Label do tworzenia komentarzy blokowych.
Lub, jeśli blok komentarza pojawi się na końcu pliku wsadowego, możesz napisać EXIT
na końcu kodu i następnie dowolną liczbę komentarzy dla twojego zrozumienia.
@ECHO OFF
REM Do something
•
•
REM End of code; use GOTO:EOF instead of EXIT for Windows NT and later
EXIT
Start of comment block at end of batch file
This line is comment.
And so is this line.
And this one...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-24 10:50:55
Umieszczanie komentarzy w tej samej linii poleceniami: use & :: comment
color C & :: set red font color
echo IMPORTANT INFORMATION
color & :: reset the color to default
Explanation:
&
oddziela dwa polecenia , więc w tym przypadku color C
jest pierwszym poleceniem, a :: set red font color
drugim.
Ważne:
To stwierdzenie z komentarzem wygląda intuicyjnie poprawnie:
goto error1 :: handling the error
Ale to nie jest poprawne użycie komentarza. Działa tylko dlatego, że goto
ignoruje wszystkie argumenty poza pierwszym. Dowodem jest easy, to goto
też nie zawiedzie:
goto error1 handling the error
Ale podobna próba
color 17 :: grey on blue
Nie wykonuje polecenia z powodu 4 argumentów nieznanych komendzie color
: ::
, grey
, on
, blue
.
Będzie działać tylko jako:
color 17 & :: grey on blue
Więc ampersand jest nieunikniony.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-07 11:14:13
Możesz coś skomentować używając ::
lub REM
:
your commands here
:: commenttttttttttt
Lub
your commands here
REM commenttttttttttt
Aby zrobić to w tej samej linii co polecenie, musisz dodać ampersand:
your commands here & :: commenttttttttttt
Lub
your commands here & REM commenttttttttttt
Uwaga:
- Za pomocą
::
w logice zagnieżdżonej(IF-ELSE
,FOR
pętle itp...) spowoduje błąd. W takich przypadkach należy użyćREM
zamiast tego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-21 05:24:11