Как "комментировать" (добавить комментарий) в пакете/cmd?
У меня есть пакетный файл, который запускает несколько скриптов python, которые делают изменения таблицы.
Я хочу, чтобы пользователи комментировали 1-2 скрипта python, которые они не хотят запускать, а не удаляли их из пакетного файла (поэтому следующий пользователь знает, что эти скрипты существуют как параметры!)
Я также хочу добавить комментарии, чтобы привлечь их внимание к переменным, которые они должны обновить в пакетном файле, прежде чем запускать его. Я вижу что я могу использовать
REM
. Но похоже, что это больше для обновления пользователя с прогрессом после его запуска.
есть ли синтаксис для более точного добавления комментария?
7 ответов
The rem
команда действительно для комментариев. Он по своей сути не обновляет никого после запуска сценария. Некоторые авторы сценариев могут использовать его таким образом вместо echo
, хотя бы потому, что по умолчанию пакетный переводчик распечатать каждая команда перед обработкой. С rem
команды ничего не делай, безопасно печатать их без побочных эффектов. Чтобы не печатать команды, добавлять @
, или, чтобы применить этот параметр во всей программе, запустите @echo off
. (Это echo off
чтобы избежать печати дополнительных команд;@
чтобы избежать печати это команда до установки Эха вступает в силу.)
так, в пакетном файле, вы можете использовать этот:
@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py
your commands here :: commenttttttttttt
или
your commands here REM commenttttttttttt
Примечания:
во вложенных логика (
IF-ELSE
,FOR
петли и т. д...)::
срабатывает ошибка, поэтому используйтеREM
там или бежать с помощью^
характер, ex.^(
и^)
в определенных случаях (если вы используете его inline), вам может потребоваться добавить & знак:
& :: commenttttt
нет, обычные старые пакетные файлы используют REM
в качестве комментария. ECHO
- это команда, которая печатает что-то на экране.
чтобы "прокомментировать" разделы файла, которые вы могли бы использовать GOTO
. Пример всех этих команд/технологий:
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
что я могу сказать? пакетные файлы-это пережиток давно ушедших времен, они неуклюжи и уродливы.
вы можете подробнее на этом сайте.
EDIT: немного изменил пример, чтобы он был содержат элементы, которые вы, по-видимому, ищет.
:: вместо REM предпочтительно использовать в те дни, когда компьютеры не были очень быстрыми. REM'ed строки читаются, а затем ingnored. :: 'ed line полностью игнорируются. Это может ускорить ваш код в "старые времена". Далее после Рем нужен пробел, после :: нет.
и, как сказано в первом комментарии: Вы можете добавить информацию в любую строку, которую вы чувствуете необходимость
SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS
Что касается пропуска частей. Положить REM перед каждой строкой может быть довольно время всепоглощающий. Как уже упоминалось, использование GOTO для пропуска частей-это простой способ пропустить большие части кода. Обязательно установите метку :в точке, в которой вы хотите, чтобы код продолжался.
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
мульти строка комментария
если есть большое количество строк, которые вы хотите прокомментировать, то будет лучше, если вы можете сделать многострочные комментарии, а не комментировать каждую строку.
язык пакета не имеет блоков комментариев, хотя есть способы достижения эффекта.
GOTO EndComment1
This line is comment.
And so is this line.
And this one...
:EndComment1
можно использовать GOTO
Label and: Label для создания комментариев блоков.
или, если блок комментариев появится в конце пакетного файла, вы можете пиши EXIT
В конце кода, а затем любое количество комментариев за ваше понимание.
@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...
размещение комментариев в одной строке с командами: use & :: comment
color C & :: set red font color
echo IMPORTANT INFORMATION
color & :: reset the color to default
объяснение:
&
отделяет две команды, так что в данном случае color C
является первой командой и :: set red font color
- второй.
важно:
это утверждение с комментарием выглядит интуитивно правильным:
goto error1 :: handling the error
но это недопустимое использование комментария. Работает только потому что goto
игнорирует все аргументы после первого. Доказательство легко, это goto
тоже не подведет:
goto error1 handling the error
но подобная попытка
color 17 :: grey on blue
не удается выполнить команду из-за 4 аргументов, неизвестных : ::
, grey
, on
, blue
.
он будет работать только как:
color 17 & :: grey on blue
Итак, амперсанд неизбежен.
вы можете прокомментировать то, что с помощью ::
или REM
:
your commands here
:: commenttttttttttt
или
your commands here
REM commenttttttttttt
чтобы сделать это в той же строке, что и команда, необходимо добавить амперсанд:
your commands here & :: commenttttttttttt
или
your commands here & REM commenttttttttttt
Примечание:
- используя
::
во вложенных логика (IF-ELSE
,FOR
петли и т. д...) вызовет ошибку. В этих случаях используйтеREM
вместо.