У меня есть следующий стрип:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
SET /A countArgs=1
...
SET /A countArgs+=1
CALL :error "!countArgs!. Argument ^-^> bla"
EXIT /B 1
...
:error
ECHO ERROR
ECHO %~1
EXIT /B 0
Но 2. ECHO
строка в :error
подпрограмме echo
ничего не значит. Когда я уменьшаю строку аргумента CALL
до "!countArgs!. Argument ^-^>"
, я получаю синтаксическую ошибку, а когда я уменьшаю ее до "!countArgs!. Argument ^-"
или даже "!countArgs!. Argument -"
, все работает правильно.
Согласно этому сообщению, символ должен быть экранирован при добавлении ^
, если он находится внутри кавычек, что имеет смысл, потому что при использовании строки в качестве параметра в подпрограмме :error
~
удаляет окруженные кавычки...
Как я могу это исправить?
Ценю вашу помощь.