Ich möchte "192.168.1" isolieren. und haben das in einer Variablen gespeichert
Verwenden Sie die folgende Batchdatei (test.cmd):
@echo off setlocal setlocal enabledelayedexpansion rem throw away everything except the IPv4 address line for /f "usebackq tokens=*" %%a in (`ipconfig ^| findstr /i "ipv4"`) do ( rem we have for example "IPv4 Address. . . . . . . . . . . : 192.168.42.78" rem split on : and get 2nd token for /f delims^=^:^ tokens^=2 %%b in ('echo %%a') do ( rem we have " 192.168.42.78" rem split on . and get 4 tokens (octets) for /f "tokens=1-4 delims=." %%c in ("%%b") do ( set _o1=%%c set _o2=%%d set _o3=%%e set _o4=%%f rem strip leading space from first octet set _3octet=!_o1:~1!.!_o2!.!_o3!. echo !_3octet! ) ) ) rem add additional commands here endlocal
Anmerkungen:
- Der gewünschte Wert wird gespeichert
_3octet
- Entfernen Sie das,
echo
was für das Debugging vorhanden ist - Ersetzen Sie
rem add additional commands here
mit Ihrem "Netzwerk-Ping"
Verwendungsbeispiel und Ausgabe:
F:\test>ipconfig | findstr /i "ipv4" IPv4 Address. . . . . . . . . . . : 192.168.42.78 F:\test>test 192.168.42.
Lesen Sie weiter
- Ein AZ-Index der Windows-CMD-Befehlszeile - Eine hervorragende Referenz für alles, was mit Windows-Cmd-Zeilen in Verbindung steht.
- enabledelayedexpansion - Eine verzögerte Erweiterung bewirkt, dass Variablen nicht zur Analysezeit, sondern zur Ausführungszeit erweitert werden.
- for / f - Schleifenbefehl gegen die Ergebnisse eines anderen Befehls.
- ipconfig - IP konfigurieren (Internet Protocol-Konfiguration)
- set - CMD-Umgebungsvariablen anzeigen, festlegen oder entfernen. Mit SET vorgenommene Änderungen bleiben nur für die Dauer der aktuellen CMD-Sitzung erhalten.
- setlocal - Legen Sie Optionen fest, um die Sichtbarkeit von Umgebungsvariablen in einer Batchdatei zu steuern.
- variables - Extrahieren Sie einen Teil einer Variablen (Teilzeichenfolge).