我想在验证该参数之前测试是否已提供特定的命名参数,因此我可以为丢失和无效的条件提供有意义的错误代码。我现在有这个]
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 ...
如果在命令行上未提供命名参数,则WScript.Arguments.Named
集合将返回一个空值。空值不同于空字符串-空值未初始化,空字符串没有初始化,是零长度的常规字符串。