VBScript从变量中删除字符

时间:2013-08-19 18:24:30

标签: batch-file vbscript command

我有这个脚本

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)命令行/批处理也不错。

2 个答案:

答案 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")