Як робити коментарі в командному рядку Windows?


67

Який еквівалент #для cmdсеансів консолі Windows , щоб створити коментар?

Операційна система - Windows XP.


1
Зауважте, що cmd.exeв Windows не DOS - це повноцінне додаток для Windows, яке просто має схожий синтаксис із цимcommand.com
grawity

Відповіді:


90

REM є стандартним способом:

REM this is a comment

Ви також можете скористатись умовною умовою подвійної двокрапки, яка зазвичай зустрічається у пакетних файлах:

:: another comment

Одинарна двокрапка, за якою слідує рядок, - це мітка, але подвійна двокрапка і все, що після неї, мовчки ігноруються. Можна стверджувати, що ця форма є більш розбірливою, ніж REMкоманда.

Зауважте, що обидва ці методи працюють лише на початку рядка. Якщо ви хочете додати коментар до команди, ви можете використовувати їх із символом конкатенації команд ( &), наприклад:

dir & REM a comment
dir &:: another one

2
Дякую. Чи працює це лише в тому випадку, якщо це перше, що трапляється, а не робити щось подібне dir :: comment?
Ендрю Грімм

1
Спочатку корисне посилання . Тоді коментарі з подвійною двокрапкою, здається, не працюють у кодових блоках (код між дужками, як-от в if/ forциклі).
x-yuri

@efotinis, remнасправді це команда? Не ::було б краще, тому що воно саме ігнорується?
Pacerier

@Pacerier, так REM- це фактична команда, але вона вбудована в CMD.EXE, тому вона повинна бути досить ефективною. З іншого боку, це ::може бути швидше, оскільки він ігнорує все до кінця рядка (наприклад, він не перевіряє використання ланцюгових команд &).
efotinis

2
Майте на увазі, що використання ::може порушити код у деяких випадках, наприклад, останній рядок у блоці коду.
bryc

16

Ви додасте свій коментар до слова REM.

REM This is a comment.

Але якщо ви хочете, щоб ваш коментар був надрукований вам, вам слід повторити його:

echo This is a comment you'll see.

Приймаю як працюю, але я був би трохи здивований, якби відповідь була BTW, як у lolcode.com/specs/1.2#comments
Ендрю Грімм

5

У REMкоманді тільки зауваження (тобто Скажіть що - небудь в якості коментаря) лінію від виконуються. Однак, якщо @echo offйого немає у пакетному файлі, цей рядок все одно перегукнеться з екраном.

Щоб ці рядки не відображалися, ви можете зробити одну з трьох речей.

  1. Додайте @echo off у пакетний файл :
    Якщо ви хочете приховати всі команди, а також рядки REM, додайте @echo off як перший рядок у пакетному файлі.
  2. Змініть REM на @REM :
    Якщо ви хочете, щоб команди були показані під час запуску пакетного файлу, але все ж хочете приховати рядки REM, введіть @REM замість REM.
  3. Використовуйте: :( тобто недійсний лейбл ) замість REM :
    Нарешті, використання команди :: як команди зауваження замість REM також запобігає відлуння рядка зауваження.

джерело


2

Я вважаю, що відповідь Бернарда невірна.

Принаймні через виграш 7,

rem comment

у пакетному файлі буде надруковано у висновку. Для придушення друку використовуйте

@ rem comment

або

@rem comment

Те саме стосується інших команд, які за замовчуванням перегукуються на консолі.


Команда REM commentне надрукує жодного виводу на екран. Для демонстрації в реальному часі відкрийте командний рядок і запустіть, echo commentа потім запустіть команду rem comment. Зауважте, що echoкоманда друкує вихід на екран, а remкоманда - не.
Я кажу, відновіть Моніку

Я завжди використовую @REM commentв своїх пакетних скриптах, щоб уникнути їх появи. Я б запропонував редагувати відповідь Бернарда, щоб включити використання @ перед REM у пакетних скриптах, щоб уникнути її появи, а не опублікувати зовсім нову відповідь.
Робін Гуд

3
@RobinHood, пакетні файли повторюють всі команди за замовчуванням (для налагодження), тому їх починається звичайно @ECHO OFF & SETLOCAL .... Таким чином, вам не потрібно додавати @всі рядки, і ви можете легко перейти на ECHO ONте, коли щось піде не так, і вам потрібно зробити тестування.
efotinis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.