使用等号和分号读取批处理文件参数

时间:2013-04-29 09:03:00

标签: batch-file

我正在尝试在Windows 2008 R2上运行批处理文件,如下所示: Setup.bat 8​​0,http,“Database = LbCore; Server =(localhost); Trusted_connection = yes”,“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

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

是否有更好的方法来传递带有特殊字符的参数,如上面的场景?

1 个答案:

答案 0 :(得分:0)

使用特殊字符双引号,或双引号。

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

编辑:我注意到您似乎正在这样做,但如果它在另一台计算机上不起作用,请检查该计算机上的批处理文件和启动程序。