我不明白这个家伙。与空间批处理文件参数
有一个.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