Vbscript 带冒号的多个论点

Vbscript 带冒号的多个论点,vbscript,Vbscript,我正在尝试找出如何使用多个参数运行脚本,但每个参数之间都需要有冒号。例如: setup.exe服务器名:端口 我想克服的问题是: 1.问题是用户可以输入许多参数 2.输入的参数之间必须有一个冒号,并且必须作为SERVERNAME:PORT完成-有什么方法可以做到这一点吗 我有下面的草稿,不太确定它是否能满足我的需要 argsCount = WScript.Arguments.Count Set args = Wscript.Arguments If argsCount < 1 then

我正在尝试找出如何使用多个参数运行脚本,但每个参数之间都需要有冒号。例如:

setup.exe服务器名:端口

我想克服的问题是:

1.问题是用户可以输入许多参数

2.输入的参数之间必须有一个冒号,并且必须作为SERVERNAME:PORT完成-有什么方法可以做到这一点吗

我有下面的草稿,不太确定它是否能满足我的需要

argsCount = WScript.Arguments.Count
Set args = Wscript.Arguments

If argsCount < 1 then
    WScript.Echo "Error no arguments selected - usage: script.vbs <SERVERNAME>:<PORT>, <SERVERNAME>:<PORT>, <SERVERNAME>:<PORT> etc"
    WScript.Quit
Else
    For Each arg In args
        setup.exe <IP>:<PORT>
    Next
End If

如果您愿意删除,并使用RegExp:

Option Explicit

Dim args : Set args = WScript.Arguments.Unnamed

If args.Count < 1 then
    WScript.Echo "Error no arguments selected - usage: script.vbs <SERVERNAME>:<PORT> <SERVERNAME>:<PORT> <SERVERNAME>:<PORT> etc"
    WScript.Quit
Else
    Dim r : Set r = New RegExp
    r.Pattern = "^\w+:\d+$"
    Dim a, m
    For Each a In args
        Set m = r.Execute(a)
        If 1 <> m.Count Then
           WScript.Echo "Bingo:", a
        Else
           WScript.Echo "setup.exe", m(0).Value
        End If
    Next
End If

请注意,空格将打破这种做法。

这真的很好…不幸的是,我使用的setup.exe文件必须有,我刚刚意识到它们之间不能有空格..所以,它必须是:,:…有机会这样做吗?
cscript y.vbs
Error no arguments selected - usage: script.vbs <SERVERNAME>:<PORT> <SERVERNAME>:<PORT> <SERVERNAME>:<PORT> et
c

cscript y.vbs server:123 a:0 0:a "nice try:4711" abc:abc abc:000
setup.exe server:123
setup.exe a:0
Bingo: 0:a
Bingo: nice try:4711
Bingo: abc:abc
setup.exe abc:000
Option Explicit

Dim args : Set args = WScript.Arguments.Unnamed

If args.Count <> 1 then
    WScript.Echo "Error no arguments selected - usage: script.vbs <SERVERNAME>:<PORT>,<SERVERNAME>:<PORT>,<SERVERNAME>:<PORT> etc"
    WScript.Quit
Else
    Dim r : Set r = New RegExp
    r.Pattern = "^\w+:\d+$"
    Dim a, m
    For Each a In Split(args(0), ",")
        Set m = r.Execute(a)
        If 1 <> m.Count Then
           WScript.Echo "Bingo:", a
        Else
           WScript.Echo "setup.exe", m(0).Value
        End If
    Next
End If
cscript y.vbs server:123,a:0,0:a,abc:abc,abc:000
setup.exe server:123
setup.exe a:0
Bingo: 0:a
Bingo: abc:abc
setup.exe abc:000