我正在尝试在Windows 2008 R2上运行批处理文件,如下所示: Setup.bat 80,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
好像在其他机器上,=和;被视为参数分隔符。
是否有更好的方法来传递带有特殊字符的参数,如上面的场景?
答案 0 :(得分:0)
使用特殊字符双引号,或双引号。
call batch "80" "http" "Database=LbCore;Server=(localhost);Trusted_connection=yes" "etc"
编辑:我注意到您似乎正在这样做,但如果它在另一台计算机上不起作用,请检查该计算机上的批处理文件和启动程序。