使用等号和分号读取批处理文件参数
问题描述:
我试图在Windows 2008 R2上运行批处理文件,如下所示: Setup.bat 80,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
好像其他机器上,=和;被视为参数分隔符。
是否有更好的方法来传递带有特殊字符的参数?
答
双引号的特殊字符,或双引号全部。
call batch "80" "http" "Database=LbCore;Server=(localhost);Trusted_connection=yes" "etc"
编辑:我注意到,你似乎是这样做的,但如果它不另一台机器上工作,然后检查批处理文件和启动这台机器上。
',; ='和是所有Windows版本中的默认分隔符。 –
Endoro
2013-04-29 09:52:41