Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scripting VB脚本无法识别实际参数_Scripting_Vbscript_Scripting Language - Fatal编程技术网

Scripting VB脚本无法识别实际参数

Scripting VB脚本无法识别实际参数,scripting,vbscript,scripting-language,Scripting,Vbscript,Scripting Language,我有两个VB脚本。说第一个.vbs和第二个.vbs first.vbs每次发生某个操作/事件时调用Second.vbs 我正在尝试使用以下代码将两个参数从first.vbs发送到Second.vbs: First.vbs的内容: Set objShell = Wscript.CreateObject("WScript.Shell") param1 = "Welcome" param2 = "Gokul Nath" objShell.Run "Second.vbs" & " " &

我有两个VB脚本。说第一个.vbs第二个.vbs

first.vbs每次发生某个操作/事件时调用Second.vbs

我正在尝试使用以下代码将两个参数从first.vbs发送到Second.vbs

First.vbs的内容

Set objShell = Wscript.CreateObject("WScript.Shell")
param1 = "Welcome"
param2 = "Gokul Nath"
objShell.Run "Second.vbs" & " " & param1 & " " & param2
Set objShell = Nothing
param1= Wscript.Arguments.Item(0)
param2 = Wscript.Arguments.Item(1)
WScript.Echo(param1)
WScript.Echo(param2)
Second.vbs的内容

Set objShell = Wscript.CreateObject("WScript.Shell")
param1 = "Welcome"
param2 = "Gokul Nath"
objShell.Run "Second.vbs" & " " & param1 & " " & param2
Set objShell = Nothing
param1= Wscript.Arguments.Item(0)
param2 = Wscript.Arguments.Item(1)
WScript.Echo(param1)
WScript.Echo(param2)
我收到以下回音消息:

Welcome-这是正确的,因为我已经通过First.vbs的“Welcome”
Gokul-这是错误的,因为我从First.vbs通过了“Gokul Nath”
由于每个空格都被视为参数的结尾,因此会出现此问题


我不熟悉脚本编写,谁能给我一些建议/参考。

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)

嗨,维克斯,你能帮我解决这个问题吗