Странное поведение со спецсимволами в аргументах пакетных функций?
Предположим, вы бежите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"
А?
Where didblabla
go in the LIST?
ARG 1 has ^^
? Why?
Может кто-нибудь объяснить, как специальные символы ведут себя по-разному в аргументах функций в отличие от аргументов командной строки?