繁体   English   中英

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

[英]error when passing string argument from batch to vbs

我正在用批处理文件调用vbs字符串。 我通过批处理将字符串传递给vbs。

完整的批处理文件:

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

但是,当我读参数入的VBScript与str = Wscript.Arguments(0)的值strsample ,而不是sample foo

我该如何解决?

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

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.vbs文件

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

1.BAT

Wscript 1.vbs "sample foo"

cmd线输出

在此处输入图片说明

由于变量语法格式错误,因此发布的批处理文件应具有VBScript输出arg 即使你纠正%arg%arg%你应该得到一个空字符串作为输出,因为你的变量赋值的格式不正确以及( set arg =...定义一个变量%arg %

更改

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

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

问题就会消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM