Я не понимаю этих парней.Параметр пакетного файла с пробелом
Существует .exe, который просто записывает все параметры в консоль.
>my.exe "1 2" "3 4"
param[0]=my.exe
param[1]=1 2
param[2]=3 4
Существует .bat файл
set EXE="my.exe"
set A=%~dp1
set B=%~n1.pre.xml
echo 1=%1
echo EXE=%EXE%
echo A=%A%
echo B=%B%
"%EXE%" -p %A% -o %B%
Запуск летучей мыши файл, выход:
1="C:\Users\xx yy\AppData\Roaming\aaaa\p_27."
EXE="my.exe"
A=C:\Users\xx yy\AppData\Roaming\aaaa\
B=p_27.pre.xml
param[0]=my.exe
param[1]=-p
param[2]=C:\Users\xx
param[3]=yy\AppData\Roaming\aaaa\
param[4]=-o
param[5]=p_27.pre.xml
Ok, так что разделить путь на пространстве. Я хочу, чтобы не разбить путь! Простые, просто использовать цитаты:
"%EXE%" -p %A% -o %B%
--->
"%EXE%" -p "%A%" -o %B%
Но выход катастрофический:
1="C:\Users\xx yy\AppData\Roaming\aaaa\p_27."
EXE="my.exe"
A=C:\Users\xx yy\AppData\Roaming\aaaa\
B=p_27.pre.xml
param[0]=my.exe
param[1]=-p
param[2]=C:\Users\xx yy\AppData\Roaming\aaa" -o p_27.pre.xml
?????? Что происходит? Добавлена только закрывающая цитата во второй параметр, а остальные параметры объединены со вторым?
Как я могу получить этот результат:
param[0]=my.exe
param[1]=-p
param[2]=C:\Users\xx yy\AppData\Roaming\aaaa\
param[3]=-o
param[4]=p_27.pre.xml
Woaw, никогда не думал, что синтаксический анализатор printf применяется к параметрам командной строки! Я просто изменил «% EXE%» -p «% A%» -o% B% -> «% EXE%» -p «% A% \» -o% B% ', и это все – Zotyi