String herausfiltern
Hallo,
ich möchte gerne bei vielen Maschinen per Loginscript den FQDN ermitteln.
Dafür wollte ich ihn aus der Rückgabe von: ping -a 127.0.0.1 herauslösen und in eine Variable schreiben. Er steht ja immer an der selben Stelle.
Beispiel für die Rückgabe:
Also brauche ich alles von der ersten Zeile der Rückgabe ab dem 4. Leerzeichen bis zum nächsten Leerzeichen.
Gruß
Torsten
ich möchte gerne bei vielen Maschinen per Loginscript den FQDN ermitteln.
Dafür wollte ich ihn aus der Rückgabe von: ping -a 127.0.0.1 herauslösen und in eine Variable schreiben. Er steht ja immer an der selben Stelle.
Beispiel für die Rückgabe:
C:\> ping -a -n 1 127.0.0.1
Ping wird ausgeführt für PC001.DOMAIN.local [127.0.0.1] mit 32 Bytes Daten:
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Also brauche ich alles von der ersten Zeile der Rückgabe ab dem 4. Leerzeichen bis zum nächsten Leerzeichen.
Gruß
Torsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 246376
Url: https://administrator.de/forum/string-herausfiltern-246376.html
Ausgedruckt am: 14.04.2025 um 02:04 Uhr
5 Kommentare
Neuester Kommentar
Über das auslesen des Ping geht es so (habe mit skip gearbeitet, da mit findstr unterschiedliche Sprachen der Systeme beachtet werden müssten):
ich würde es aber zuverlässiger über wmi machen:
Grüße Uwe
for /f "skip=1 tokens=5 delims= " %%a in ('ping -n 1 127.0.0.1') DO @(
set "FQDN=%%a"
goto next
)
:next
echo %FQDN%
for /f "skip=1 tokens=1,2" %%a in ('wmic Computersystem get DNSHostname^,Domain') DO @(
set "FQDN=%%a.%%b"
goto next
)
:next
echo %FQDN%
...oder, als Ergänzung zu colinardos Lösungen, dasselbe mit "if defined" statt "goto next".
Dann lässt es sich auch am CMD-Prompt verproben in einem Einzeiler.
Am Beispiel der Ermittlung des Strings über WMIC am CMD-Prompt:
--> bei Ausführung am CMD-Prompt wird die Variable FQDN gesetzt und zur Kontrolle angezeigt.
Als Batch dann so (Variable FQDN bei der "if defined"-Strategie aber vorher löschen, sonst wird sie nie neu gesetzt)
Grüße
Biber
Dann lässt es sich auch am CMD-Prompt verproben in einem Einzeiler.
Am Beispiel der Ermittlung des Strings über WMIC am CMD-Prompt:
for /f "skip=1 tokens=1,2" %a in ('wmic Computersystem get DNSHostname^,Domain') DO @(If not defined FQDN (set "FQDN=%a.%b" & set FQDN))
Als Batch dann so (Variable FQDN bei der "if defined"-Strategie aber vorher löschen, sonst wird sie nie neu gesetzt)
...
SET FQDN=
for /f "skip=1 tokens=1,2" %%a in ('wmic Computersystem get DNSHostname^,Domain') DO @(
If not defined FQDN set "FQDN=%%a.%%b"
)
echo FQDN: %FQDN%
Grüße
Biber