测试是否存在VBScript命名参数

问题描述 投票:0回答:1

我想在验证该参数之前测试是否已提供特定的命名参数,因此我可以为丢失和无效的条件提供有意义的错误代码。我现在有这个]

Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colArgs = WScript.Arguments.Named

If colArgs.Item("Script") Then
    If not objFSO.FileExists(colArgs.Item("Script")) Then
        intReturn = 1805
    End If
Else
    intReturn = 1639
End If

If Not intReturn Then
    msgBox colArgs.Item("Script"), 0, "Script"
Else
    msgBox intReturn, 0, "Error"
End If

并且我的期望是,如果我根本不提供一个称为Script的参数,我将得到带有1639值的Error msgBox。相反,我得到了很好的msgBox,其中的Script为空白。我也尝试过

If Not colArgs.Item("Script") = "" Then

我想在验证该参数之前测试是否已提供特定的命名参数,因此我可以为丢失和无效的条件提供有意义的错误代码。我现在有这个Set objShell ...

vbscript command-line-arguments
1个回答
0
投票

如果在命令行上未提供命名参数,则WScript.Arguments.Named集合将返回一个空值。空值不同于空字符串-空值未初始化,空字符串没有初始化,是零长度的常规字符串。

© www.soinside.com 2019 - 2024. All rights reserved.