【发布时间】:2013-11-28 09:51:09
【问题描述】:
我希望能够检查第一个传递给 Windows 脚本的参数的值。但我希望能够做到这一点,即如果没有传递参数,脚本不会给出运行时错误。
这只是一个好奇的问题,因为我可以让我的脚本使用两个 if 语句,但我想知道是否有办法只用一个(比如
monthly = false
if wscript.arguments.count > 0 then
if wscript.arguments(0) = "monthly" then
monthly = true
end if
end if
如果能这样就更整洁了……
if wscript.arguments.count > 0 and wscript.arguments(0) = "Monthly" then
monthly = true
end if
但这会导致下标超出范围错误,因为脚本引擎正在尝试检查不存在的数组项的值。
我知道我可以在 PHP 中进行这种类型的检查 (if(isset($_POST['somevariable'])) && $_POST['somevariable'] == 'somevalue')
【问题讨论】:
-
也许是个愚蠢的问题,但这是 VBScript 吗?
-
是的,我将问题标记为 wscript,默认情况下不是 vbscript 吗?
-
老实说,我并不完全有资格这样做。但是在 VBScript 中允许 If(cond1 And cond2) 是。
-
但如果 cond1 为 false,解析器仍会检查 cond2,在这种特殊情况下,检查 cond2 时会抛出下标超出范围错误。我知道您可以在 if 语句中检查多个变量。但这个特殊情况是不同的。我已经编辑了我的问题,使其更加清晰。如果第一个值为 false,则第二个值不存在。
-
我想我真正要问的是,在该位置可能没有数组项的情况下,检查数组项值的“干净”方法是什么。
标签: wsh