Batch-Datei - Aufteilen eines Standard-Gateways in seine Komponenten, Hinzufügen einer Nummer und anschließendes Wiederherstellen

4

Grundsätzlich muss ich das Standard-Gateway einer Win7-Maschine erhalten, die ich mit dem folgenden Code erreicht habe:

@echo off
for /f "skip=1 delims={}, " %%A in ('wmic nicconfig get defaultIPgateway') do for /f "tokens=1" %%B in ("%%~A") do set "IP=%%~B"
echo %IP%

Das Problem ist, was ich dann tun muss, ist, den letzten Teil zu ziehen (also von 10.10.10.1, ich brauche den 1, überprüfe, ob er entweder 1ist 65, 83oder 192), eine Zahl hinzuzufügen und ihn dann wieder zu einer vollständigen IP zusammenzusetzen - z.10.10.10.2

Ich stecke beim Teilen fest ...

Ich habe:

FOR /F "DELIMS=. TOKENS=4" %a IN %%IP%% DO ECHO %d

Was mache ich falsch?

Hilfe wäre sehr dankbar.

Vielen Dank,

Toby MacDonnell
quelle
FOR / F "TOKENS = 4 DELIMS =." %% f IN ("% IP%") DO ECHO %% f Dies scheint mir die 2 gebracht zu haben, also nähere dich ...
Toby MacDonnell
Wenn der Code in Ihrem letzten Kommentar Ihnen das letzte Oktett gibt ("2" aus 10.1.1.2, nehme ich an, Sie meinen), dann bin ich mir nicht sicher, was in Ihrer Frage noch zu beantworten ist?
ƬᴇcƬᴇιʜ007
Ja, ich glaube, ich habe meine eigene Frage beantwortet ...
Toby MacDonnell

Antworten:

1

Wie erhalte ich das letzte Oktett von der Standard-Gateway-IP-Adresse?

Verwenden Sie die folgende Batchdatei:

@echo off
setlocal
setlocal enabledelayedexpansion
rem throw away everything except the ip address line 
for /f "usebackq" %%a in (`wmic nicconfig get defaultIPgateway ^| findstr "{"`) do (
  rem we have for example {"192.168.42.129"}
  rem split on " and get 2nd token
  for /f delims^=^"^ tokens^=2 %%b in ('echo %%a') do (
     rem we have 192.168.42.129
     rem split on . and get 4 tokens (octets)
    for /f "tokens=1-4 delims=." %%c in ("%%b") do (
      rem we have 129
      set _o1=%%c
      set _o2=%%d
      set _o3=%%e
      set _o4=%%f
      )
    )
  )
echo %_o4%
endlocal

Weitere Lektüre

DavidPostill
quelle