테이블 수정을 수행하는 여러 Python 스크립트를 실행하는 배치 파일이 있습니다.
-
사용자가 배치 파일에서 스크립트를 제거하는 대신 실행하고 싶지 않은 1-2 python 스크립트를 주석 처리하고 싶습니다 (따라서 다음 사용자는이 스크립트가 옵션으로 존재한다는 것을 알고 있습니다!)
-
또한 배치 파일을 실행하기 전에 업데이트 해야하는 변수에주의를 기울이기 위해 주석을 추가하고 싶습니다. 사용할 수 있음을 알았습니다
REM
. 그러나 사용자를 실행 한 후 진행 상태로 사용자를 업데이트하는 것이 더 좋습니다.
주석을 더 적절하게 추가하기위한 구문이 있습니까?
답변
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
답변
사용 ::
또는REM
:: commenttttttttttt
REM commenttttttttttt
그러나 (사람들이 지적한대로) :
- 인라인을 사용하는 경우
&
문자 를 추가해야합니다 .
your commands here & :: commenttttttttttt
- 내부 중첩 논리 (
IF/ELSE
,FOR
루프 등 …) 는 오류를 발생시키기REM
때문에 사용::
됩니다. ::
내에서 실패 할 수있다setlocal ENABLEDELAYEDEXPANSION
답변
아니요, 일반 배치 파일 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
내가 무엇을 말할 수 있습니까? 배치 파일은 오래 전에 사라진 유물이며, 어수선하고 추악합니다.
이 웹 사이트에서 더 많은 내용 을 읽을 수 있습니다 .
편집 : 당신이 분명히 찾고있는 요소를 포함하도록 예제를 약간 수정했습니다.
답변
컴퓨터가 그리 빠르지 않은 시절에 REM 대신 ::을 사용하는 것이 좋습니다. REM의 행을 읽은 다음 무시합니다. :: ‘ed 줄은 완전히 무시됩니다. “이전에는”코드가 빨라질 수 있습니다. REM 이후에는 더 많은 공간이 필요합니다.
그리고 첫 번째 의견에서 말했듯이 : 필요한 줄에 정보를 추가 할 수 있습니다.
SET DATETIME=%DTS:~0,8%-%DTS:~8,6% ::Makes YYYYMMDD-HHMMSS
부품의 생략에 관해서는. 모든 라인 앞에 REM을 두는 것은 시간이 많이 걸릴 수 있습니다. GOTO를 사용하여 부분을 건너 뛰는 것처럼 큰 코드를 건너 뛸 수있는 쉬운 방법입니다. 코드를 계속하려는 지점에서 : LABEL을 설정하십시오.
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
답변
여러 줄 주석
주석을 작성하려는 행이 많으면 모든 행을 주석 처리하는 대신 여러 행 주석을 작성할 수있는 것이 좋습니다.
코멘트 블록에서 Rob van der Woude의이 포스트를 보십시오 :
배치 언어에는 주석 블록이 없지만 효과를 수행 할 수있는 방법이 있습니다.
GOTO EndComment1 This line is comment. And so is this line. And this one... :EndComment1
GOTO
블록 주석을 만들기 위해 Label 및 : 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 개 인수 알 수없는 명령 실행에 실패 color
명령을 : ::
, 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
대신 사용하십시오.