我不明白這個傢伙。與空間批處理文件參數
有一個.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%
運行bat文件,輸出:
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
好了,所以它在空間分割的路徑。我想要什麼,而不是分道揚!!操作簡單,只需使用引號:
"%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 2014-10-30 16:56:41