Проверьте имена аргументов vbScript - PullRequest
1 голос
/ 28 февраля 2020

Я вызываю vbScript из PowerShell с аргументами, которые определены в текстовой строке, и я хочу проверить правильность используемых аргументов. Скажем, мои действительные аргументы: ARG1 , ARG2 & ARG3 , а у кого-то есть строка "/ARGG1:one /ARG2:two", я хочу проверить названные аргументы в массиве действительные аргументы и поймать, что ARGG1 . Я терплю неудачу в получении имен названных аргументов. Я могу сослаться на определенный именованный аргумент, например, WScript.Arguments.Named("ARG1"). Но я не могу, кажется, l oop через WScript.Arguments.Named и вернуть фактические используемые имена аргументов. Как то так

For Each Argument In WScript.Arguments.Named
    msgBox Argument.name
Next

1 Ответ

0 голосов
/ 28 февраля 2020

При итерации набора аргументов Named вы получаете доступ к ключу (имя аргумента) , а не к самому объекту WshNamed. Если вы передадите ключ обратно в коллекцию, вы сможете получить доступ к значению этого Именованного аргумента.

Dim key
For Each key In WScript.Arguments.Named
    Dim argument: argument = WScript.Arguments.Named.Item(key)
    Call WScript.Echo(key) 'Return argument name
    Call WScript.Echo(argument) 'Return argument value
Next

Вывод:

ARG1
one
ARG2
two
...