我正在使用批处理文件调用vbs字符串。我正在将一个字符串传递给vbs。
完整的批处理文件:
C:
cd C:\folder
Set arg = "sample foo"
Wscript titi.vbs "%arg"
pause
但是,当我使用str = Wscript.Arguments(0)
将参数读入VBScript时,str
的值为sample
而不是sample foo
我该如何解决?
答案 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行输出
答案 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%"
问题就会消失。