Iska
19-12-2017, 14:33
Помогло. Заменил на квадратные. Работает. А чем это вызвано?? »
Тем, что в пакетных файлах отсутствует понятие строковой лексемы как отдельной сущности, потому вот здесь:
:Parameters
For /F "usebackq tokens=1* delims=:" %%a In (`"FINDSTR /B /L /I /N /C:%1 "%~dpnx0""`) DO Set /A Nbeg=%%a
Set "%~2="
For /F "usebackq tokens=1,* delims=~" %%a In (`"more +%Nbeg% "%~dpnx0""`) DO (
If /I "%%a"=="GoTo :Eof" GoTo :Eof
If Not "%%a"==":" Set "%~2=!%~2! %%a"
)
GoTo :Eof
переменная %0 разворачивается «как есть», и наличествующие в имени пакетного файла круглые скобки сводят лексический анализатор с ума — он начинает воспринимать закрывающую круглую скобку из имени файла как закрывающую скобку в наборе «in (…) do …».
Тем, что в пакетных файлах отсутствует понятие строковой лексемы как отдельной сущности, потому вот здесь:
:Parameters
For /F "usebackq tokens=1* delims=:" %%a In (`"FINDSTR /B /L /I /N /C:%1 "%~dpnx0""`) DO Set /A Nbeg=%%a
Set "%~2="
For /F "usebackq tokens=1,* delims=~" %%a In (`"more +%Nbeg% "%~dpnx0""`) DO (
If /I "%%a"=="GoTo :Eof" GoTo :Eof
If Not "%%a"==":" Set "%~2=!%~2! %%a"
)
GoTo :Eof
переменная %0 разворачивается «как есть», и наличествующие в имени пакетного файла круглые скобки сводят лексический анализатор с ума — он начинает воспринимать закрывающую круглую скобку из имени файла как закрывающую скобку в наборе «in (…) do …».