.bat 파일의 "rem"주석으로 인해 "25는 현재 예기치 않았습니다."오류가 발생합니다.

Aug 20 2020

이상하지 않나요? .bat rem 명령에 일종의 이스케이프 코드가 있습니까?

file.bat :

rem https://sourceforge.net/p/jedit/bugs/4084/?limit=25

실행 :

C:\Users\admin>file.bat
25 was unexpected at this time.

C:\Users\admin>https://sourceforge.net/p/jedit/bugs/4084/?limit=25

오류 수준이 표시되지 않습니다.

답변

4 aschipfl Aug 20 2020 at 06:10

rem명령은 하나의 인수, 즉를 지원하며 이에 /?대해 탐욕 스럽습니다. URL에 해당 문자열이 있습니다.

(가) =표준 토큰 구분 기호 (단지 같은 SPACE, TAB, ,, ;), 그리고 나머지는 다른 (무효) 명령으로 해석하는 것 때문에.

/?더 이상 감지되지 않으므로 따옴표 사이에 설명 텍스트를 넣으면 도움 이됩니다.

rem "https://sourceforge.net/p/jedit/bugs/4084/?limit=25"

이것을 작성할 때 :

rem/ https://sourceforge.net/p/jedit/bugs/4084/?limit=25

해당 /?부분도 더 이상 감지되지 않습니다. 그러나, 특수 문자는 좋아 &, <, >, |, ()다음 인정 받고 있습니다.


또 다른 대안은 ::실제로 유효하지 않은 레이블 인 스타일 주석 을 사용하는 것 입니다 (레이블은 :, 참조 goto /?및으로 시작 call /?).

:: https://sourceforge.net/p/jedit/bugs/4084/?limit=25

특수 문자는 여기서 문제가되지 않지만 괄호로 묶인 코드 블록 내에서 사용해서는 안됩니다.

js2010 Aug 20 2020 at 00:26

오, 이상하네요. Rem은 /? /? 다른 줄의 어딘가에 묻혀 있습니다. 큰 따옴표 안에 주소를 넣으면 문제가 해결된다고합니다.

C:\Users\admin>rem /?
Records comments (remarks) in a batch file or CONFIG.SYS.

REM [comment]

또는 25가없는 전체 문자열은 동일한 결과를 제공합니다.

rem https://sourceforge.net/p/jedit/bugs/4084/?limit=

Records comments (remarks) in a batch file or CONFIG.SYS.

REM [comment]