File batch: suddividere un gate di default verso le parti componenti, aggiungendo un numero e ricostituendolo


4

Fondamentalmente, quello che devo fare è ottenere il gateway predefinito di una macchina Win7 che ho realizzato con il seguente codice:

@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%

Il guaio è, quello che devo fare allora, è tirare l'ultima parte (così da 10.10.10.1, Ho bisogno di 1, controlla che sia 1, 65, 83 o 192 ) aggiungi un numero e ricostituiscilo a un IP completo, ad es. 10.10.10.2

Sono bloccato alla parte spaccante ...

Ho avuto:

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

Che cosa sto facendo di sbagliato?

L'aiuto sarebbe molto apprezzato.

Grazie,


FOR / F "TOKENS = 4 DELIMS =." %% f IN ("% IP%") DO ECHO %% f Sembra che mi abbia ottenuto il 2, quindi avvicinarsi ...
Toby MacDonnell

Se il codice del tuo ultimo commento ti sta dando l'ultimo ottetto ("2" da 10.1.1.2 presumo tu intenda), allora non sono sicuro di cosa rimane nella tua domanda per rispondere?
Ƭᴇcʜιᴇ007

Sì, penso di aver finito per rispondere alla mia domanda ...
Toby MacDonnell

Risposte:


1

Come ottengo l'ultimo ottetto dall'indirizzo IP del gateway predefinito?

Usa il seguente file batch:

@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

Ulteriori letture


molte grazie, molto pulito davvero !!
Toby MacDonnell
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.