将字符串参数从批处理传递给vbs时出错

时间:2017-07-24 08:41:06

标签: string batch-file vbscript arguments

我正在使用批处理文件调用vbs字符串。我正在将一个字符串传递给vbs。

完整的批处理文件:

C:
cd C:\folder
Set arg = "sample foo"
Wscript titi.vbs "%arg"
pause

但是,当我使用str = Wscript.Arguments(0)将参数读入VBScript时,str的值为sample而不是sample foo

我该如何解决?

3 个答案:

答案 0 :(得分:4)

问题是一个简单的问题,通常由使用其他编程语言的人制作。

Set arg = "sample foo"

将变量:%arg space %设置为字符串: space “sample foo”


分配变量的方法应该是:

Set arg="sample foo"

或:

Set "arg="sample foo""

我更喜欢后者。

顺便说一句,在使用%代替"%arg"时,您还错过了结束 "%arg%"

因为你使用的参数为"%arg%",所以没有必要将双引号设置为实际的变量字符串。

只需使用:

CD /D "C:\folder"
Set "arg=sample foo"

Wscript titi.vbs "%arg%"

Pause

答案 1 :(得分:0)

我在下面尝试并按预期工作,

1.vbs文件

str = Wscript.Arguments(0)
WScript.Echo(str)

1.BAT

Wscript 1.vbs "sample foo"

cmd行输出

enter image description here

答案 2 :(得分:0)

由于格式错误的变量语法,您发布的批处理文件应具有VBScript输出arg。即使您将%arg更正为%arg%,您也应该获得一个空字符串作为输出,因为您的变量赋值也是错误的(set arg =...定义变量%arg %)。

更改

Set arg = "sample foo"
Wscript titi.vbs "%arg"

set "arg=sample foo"
Wscript titi.vbs "%arg%"

问题就会消失。