Как "закомментировать" (добавить комментарий) в пакете/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
там или бежать с помощью^
персонаж, бывший.^(
и^)
в определенных случаях (если вы используете его встроенным), вам может потребоваться добавить & знак:
& :: 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 линии игнорируются полностью. Это может ускорить ваш код в "старые времена". Далее больше после REM вам нужно пространство, после :: вы не делаете.
и как сказано в первом комментарии: Вы можете добавить информацию в любую строку, которую вы чувствуете необходимость
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
метка и: метка для создания комментариев блока.или, если блок комментариев появляется в конце пакетного файла, вы можете пиши
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
вместо.