2013-04-29 104 views
0

我试图在Windows 2008 R2上运行批处理文件,如下所示: Setup.bat 8​​0,http,“Database = LbCore; Server =(localhost); Trusted_connection =是的”, “TestProduct”, “localhost” 的使用等号和分号读取批处理文件参数

我打印在批处理文件中的参数如下:

ECHO *** Port=%~1, 
ECHO *** Protocol=%~2, 
ECHO *** Connection String=%~3, 
ECHO *** Service Name=%~4, 
ECHO *** Host Name=%~5 

我期待的输出为:

*** Port=80, 
*** Protocol=http, 
*** Connection String=Database=LbCore;Server=(localhost);Trusted_connection=yes, 
*** Service Name=TestProduct, 
*** Host Name=localhost 

这是工作罚款在我的机器上。但出乎意料的是,当我尝试了一些其他Window 2008 R2的计算机上运行它,它是打印:

*** Port=80, 
*** Protocol=http, 
*** Connection String=Database, 
*** Service Name=LbCore, 
*** Host Name=Server 

好像其他机器上,=和;被视为参数分隔符。

是否有更好的方法来传递带有特殊字符的参数?

+0

',; ='和是所有Windows版本中的默认分隔符。 – Endoro 2013-04-29 09:52:41

回答

0

双引号的特殊字符,或双引号全部。

call batch "80" "http" "Database=LbCore;Server=(localhost);Trusted_connection=yes" "etc" 

编辑:我注意到,你似乎是这样做的,但如果它不另一台机器上工作,然后检查批处理文件和启动这台机器上。

相关问题