2013-03-08 76 views
0

我有两个VB脚本。说First.vbsSecond.vbsVB脚本无法识别实际参数

Frist.vbs调用Second.vbs每次发生某个动作/事件时。

我想到Second.vbs使用下面的代码从Frist.vbs发送两个参数:

内容First.vbs:中

Set objShell = Wscript.CreateObject("WScript.Shell") 
param1 = "Welcome" 
param2 = "Gokul Nath" 
objShell.Run "Second.vbs" & " " & param1 & " " & param2 
Set objShell = Nothing 

内容Second.vbs

param1= Wscript.Arguments.Item(0) 
param2 = Wscript.Arguments.Item(1) 
WScript.Echo(param1) 
WScript.Echo(param2) 

我得到以下显消息:发生

Welcome - Which is correct, since I've passed "Welcome" from First.vbs 
Gokul - Which is WRONG, since I've passed "Gokul Nath" from First.vbs 

这个问题,因为每个空间被视为一个参数的结束。

我是新手脚本,任何人都可以提供一些建议/参考。

回答

2

param2的值包含一个空格,并且您没有将该参数放在双引号之间。因为你Run命令行实际上有3个参数:

  • 欢迎
  • 戈库尔
  • 纳特

为了避免添加在你的第二个参数的双引号:

objShell.Run "Second.vbs" & " " & param1 & " """ & param2 & """" 

更好的是,报价全部争论发言:和使用引用功能,这样你就不会在双引号淹没:

Function qq(str) 
    qq = Chr(34) & str & Chr(34) 
End Function 

objShell.Run "Second.vbs" & " " & qq(param1) & " " & qq(param2) 
+0

嗨Wiechers,可以请你帮我出这个问题: http://stackoverflow.com/questions/15516311/display -a-下拉 - 组合框式-VB脚本 – 2013-03-20 06:48:50