Комментарий rem в файле .bat вызывает ошибку «25 в это время было неожиданным»
Разве это не странно? Есть ли у команд .bat rem какой-то escape-код?
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
Я не вижу ошибок.
Ответы
Команда 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
Специальные символы здесь не проблема, но их нельзя использовать в заключенном в скобки блоке кода.
О, это странно. 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]