2013-08-19 38 views
0

刪除字符我有此腳本的VBScript從可變

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(例如8.8.8.1當VPS IP是8.8.8.8)

我想讀的IP變量(a)和右從第三點中刪除所有字符

示例1: 176.23.45.102中的用戶類型 在這種情況下,應刪除102個變量並將其變爲176.23.45。

示例2: 17.23.45.4中的用戶類型 在這種情況下,應刪除4,並將該變量更改爲17.23.45。

如果在VBScript中不可行,(Windows)命令行/批處理也不錯。

回答

1

另一種選擇是正則表達式:

Set re = New RegExp 
re.Pattern = "(.*\.)\d+$" 

addr = "176.23.45.102" 
WScript.Echo re.Replace(addr, "$1") 
1

採用分體式(),扎普第四元素,加入():

>> 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啓發 - 使用正規扎普違規尾隨位(S):

>> Set r = New RegExp 
>> r.Pattern = "\d+$" 
>> WScript.Echo """" & r.Replace("1.2.3.4", "") & """" 
>> 
"1.2.3."