我有这个脚本
a=inputbox("Wat is het IP adres van de VPS?")
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd.exe /C netsh interface ipv4 set address name=Wi-Fi source=static address="& a &" mask=255.255.254.0 gateway=185.18.148.1 & pause"
msgbox "IP adres: " +a
用户在输入框中键入他的VPS IP地址。 网关是VPS IP.1(例如当VPS IP为8.8.8.8时为8.8.8.1)
我想读取IP变量(a)并从第三个点
删除所有字符示例1: 用户类型见176.23.45.102 在这种情况下,应删除102,并将变量更改为176.23.45。
示例2: 用户类型见17.23.45.4 在这种情况下,应删除4,并将变量更改为17.23.45。
如果在VBScript中不可行,(Windows)命令行/批处理也不错。
答案 0 :(得分:1)
使用Split(),删除第4个元素,Join():
>> For Each s In Array("176.23.45.102", "7.23.45.4", "1.2.3.4")
>> a = Split(s, ".")
>> a(3) = ""
>> WScript.Echo s, "=>", Join(a, ".")
>> Next
>>
176.23.45.102 => 176.23.45.
7.23.45.4 => 7.23.45.
1.2.3.4 => 1.2.3.
受@Ansgar的启发 - 使用RegExp来消除有问题的尾随数字:
>> Set r = New RegExp
>> r.Pattern = "\d+$"
>> WScript.Echo """" & r.Replace("1.2.3.4", "") & """"
>>
"1.2.3."
答案 1 :(得分:1)
另一种选择是正则表达式:
Set re = New RegExp
re.Pattern = "(.*\.)\d+$"
addr = "176.23.45.102"
WScript.Echo re.Replace(addr, "$1")