Странное поведение со специальными символами в аргументах пакетных функций?
Предположим, вы бежитеtest.bat "blabla,blabla,^>blabla", "blaby"
реализация test.bat:
@SETLOCAL
@ECHO OFF
SET list=%~1
ECHO "LIST: %list%"
ECHO "ARG 1: %~1"
ECHO "ARG 2: %~2"
@ENDLOCAL
@GOTO :EOF
Выход, как и ожидалось:
"LIST: blabla,blabla,>blabla"
"ARG 1: blabla,blabla,^>blabla"
"ARG 2: blaby"
Но что, если вы сделаете test.bat функцией внутри командного файла:
@SETLOCAL
CALL :TEST "blabla,blabla,^>blabla", "blaby"
@ENDLOCAL
@GOTO :EOF
:TEST
@SETLOCAL
@ECHO OFF
SET list=%~1
ECHO "LIST: %list%"
ECHO "ARG 1: %~1"
ECHO "ARG 2: %~2"
@ENDLOCAL
@GOTO :EOF
После его запуска получается:
"LIST: blabla,blabla,^"
"ARG 1: blabla,blabla,^^>blabla"
"ARG 2: blaby"
А?
Где сделалblabla
перейти в СПИСОК?ARG 1 имеет^^
? Зачем?Может кто-нибудь объяснить, как специальные символы ведут себя по-разному в аргументах функций в отличие от аргументов командной строки?