用户可以输入一个字符串,因此基本上有 4 个选项:
- 用户名
- 。\用户名
- 本地计算机名\用户名
- remotedomain.com\用户名
在 vbs 中,根据输入的字符串返回域和用户名的最可靠方法是什么?
因此,对于上面的 4 个输入字符串,输出如下:
- domain = “本地计算机名称”,usernme = “用户名”
- domain = “本地计算机名称”,usernme = “用户名”
- domain = “本地计算机名称”,usernme = “用户名”
- domain = “remotedomain.com”, usernme = “用户名”
答案1
我会分两个阶段进行:
首先使用正则表达式将输入拆分为用户名和密码
Option Explicit
dim re, matches, match, test
Set re = new regexp
re.pattern = "^((.*)\\)?(.*)$"
for each test in array( _
"username", _
".\username", _
"localcomputername\username", _
"remotedomain.com\username")
Set matches = re.Execute(test)
for each match in matches
msgbox "domain: " & match.submatches(1) & vbNewLine & _
"username: " & match.submatches(2)
next
next
然后,使用 Select Case 使域名有效:
dim localhost, testdomain, outputDomain
localhost = "192.168.0.1"
for each testDomain in array( _
".", _
localhost, _
"", _
"remotedomain.com")
select case testDomain
case localhost, "", "."
outputDomain = localhost
case else
outputDomain = testDomain
End Select
msgbox testDomain & " becomes " & outputDomain
Next
将这两者结合起来,您就拥有了获取域和用户名的脚本。
免责声明:以上代码是经过测试的示例代码,但您必须根据具体情况进行调整。