我有一个MS DOS命令行问题,我试图从批处理文件中将一些参数传递给控制台应用程序,如下所示(注意[xemSA]“实际上是在前一行,stackoverflow正在放置它在另一条线上):
SET server=devmos
UploadToDevMos.exe /server=server% /file="~dpdocuments\Word2003.doc" /querystring:"frequentlyused=0&clienttemplate=0&DocType=Minute&doctype=Minute&clientcodes=[xemSA]"
然而,当我运行批处理文件时,注意到/ querystring已经消失并且空间已放在&
C:\Temp\SJ\TestRunner\bin\Debug>SET server=devmos
C:\Temp\SJ\TestRunner\bin\Debug>UploadToDevMos.exe /server=devmos /file="C:\Temp
\SJ\TestRunner\bin\Debug\"frequentlyused=0 & clienttemplate=0 & DocType=Minute
& doctype=Minute & clientcodes=[JTCLuxemSA]"
如何正确地在批处理文件中传递这些参数?
亲切的问候
Simon Jackson
答案 0 :(得分:1)
您的一个参数正在使用=
,而另一个参数正在使用:
,例如/file=
和/querystring:
。我怀疑他们两个都应该使用相同的角色。
答案 1 :(得分:1)
这与~dp0
未按预期扩展有关。我想你错过了“0”
我将测试改为此,并且工作正常:
SET server=devmos
ECHO UploadToDevMos.exe /server=%server% /file="%~dp0documents\Word2003.doc" /querystring:"frequentlyused=0&clienttemplate=0&DocType=Minute&doctype=Minute&clientcodes=[xemSA]"