Jak "skomentować" (dodać komentarz) w partii / cmd?

Mam plik wsadowy, który uruchamia kilka skryptów Pythona, które modyfikują tabelę.

  1. 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!)

  2. 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?

Author: T.Todua, 2012-06-30

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
 674
Author: Rob Kennedy,
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żyj REM 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

 730
Author: T.Todua,
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.

 43
Author: fvu,
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
 28
Author: Kees,
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...

Źródło Komentarzy

 22
Author: Somnath Muluk,
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.

 12
Author: miroxlav,
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.
 2
Author: Pikamander2,
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