Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ipconfig per findstr parsen und das Ergebnis richtig sortieren lassen

Frage Entwicklung Batch & Shell

Mitglied: Schalterschorsch

Schalterschorsch (Level 1) - Jetzt verbinden

15.10.2012, aktualisiert 22:33 Uhr, 2577 Aufrufe, 7 Kommentare

Angaben über Netzwerkadapter aus ipconfig /all
sollen sauber sortiert in ein log geschrieben werden.

Hallo,

eine Batch, an der ich aktuell arbeite, soll einen Teil von ipconfig per findstr rausfiltern und in ein Log schreiben.
Es klingt recht einfach, der Teufel steckt aber im Detail.



"besondere Umstände" :

- die Geräte (Notebooks und Desktops und Tablets) können entweder nur lan, wlan+Lan oder nur wlan haben.
- die Ausgabe sollte so sortiert sein, dass man erkennt, welches Gerät welche Mac, IP etc. hat.
- virtuelle Adapter sollen nicht ins log
- die Ausgabe kommt nicht so sortiert, wie ich es will (dazu unten mehr)
Die Frage ist nun, wie ich das alles lösen kann ohne mich zu verzetteln ...

Am Besten wäre es, wenn es eine Schleife gibt, die er durchgeht, um pro Durchgang nur einen Adapter als
Datensatz per findstr anzulegen.


Als Beispiel:
findstr "description" >> log
findstr "physical" >> log
findstr "DHCP Enabled" >> log

bisher bringt das hier (Beispiel: wlan und lan im notebook sind an)

lan-Adapter
wlan-Adapter
Mac 1
MAc 2
yes
yes

toll wäre natürlich:


Lan-Adapter:
Mac
dhcp an

wlan Adapter
mac
dhcp aus


Eine Idee wäre: wenn das script lan und wlan gefunden hat ( durch die Bezeichnung)
geht es in eine verschachtelte Schleife
if Ausgabe MAC= einmal erfolgt und Mac 2 wurde gefunden, gehe in Schleife 2
in Schleife 2 sagt er "wenn Mac einmal gefunden, weiter zu mac2, dann mac2 ausgeben und weiter bis zum Ende.
Danach muss er zum Ende springen, sonst frisst die Schleife noch die virtuellen Adapter und fügt zwar nicht die nuller-macs hinzu aber dafür dann die anderen Angaben, die eingelesen werden...

Problem daran: Das script ist für troubleshooting gedacht, es kann also sein, dass das Ende von Schleife 2 (sagen wir mal dns-servers) garnicht existiert oder weiß die Katz ... Mit errorlevel-Abfragen (wenn er z.B. keine mac im ganzen log findet, kann ich ein paar Sachen noch abfedern.
Die bisher einzige saubere Lösung wäre für mich alle Eventualitäten genau zu beschreiben und ihn dann sortieren zu lassen.
Das würde im Bestfall ewige Laufzeit und sehr viel Arbeit kosten ...

Oder ich würde versuchen, jeden Datensatz einzeln in ein eigenes log zu schreiben.
Man könnte dann mit if exist die Komponenten nacheinander in ein log reinschmieren.


Wenn noch jemand einen besseren Lösungsnsatz für mein Problem hätte, wäre ich sehr dankbar


meine batch sieht bisher noch so aus:



if not exist "%temp%\ipconf.txt" (ipconfig /all > "%temp%\ipconf.txt")
set Path="%temp%\ipconf.txt"
rem ja, path wird später per find and replace noch geändert ...

set Logdest="%userprofile%\Desktop\ipconf-parsed.txt"


findstr /C:"IP Routing Enabled" "%Path%" >> "%Logdest%"
findstr /C:"Ethernet adapter local" "%Path%" >> "%Logdest%"
findstr /C:"Wireless LAN" "%Path%" >> "%Logdest%"
findstr /C:"Media State" " "%Path%" >> "%Logdest%"
findstr /C:"Description" "%Path%" >> "%Logdest%"
findstr /V "00-00-00" "%Path%" |findstr Physical >> "%Logdest%"
findstr /c:"DHCP Enabled" "%Path%" >> "%Logdest%"
findstr /c:"DHCP Server" "%Path%" >> "%Logdest%"
findstr /c:"DNS Servers" "%Path%" >> "%Logdest%"
findstr /c:"Tunnel adapter" "%Path%" >> "%Logdest%"
findstr /c:"Default Gateway" "%Path%" >> "%Logdest%"

notepad %Logdest%
pause
Mitglied: bastla
15.10.2012, aktualisiert um 21:50 Uhr
Hallo Schalterschorsch!

Hast Du schon an WMI-Abfragen per "wmic" oder VBS als Alternative gedacht?

Grüße
bastla

P.S.: %Path% ist als Variablenname eine ganz schlechte Idee ...
Bitte warten ..
Mitglied: 60730
15.10.2012, aktualisiert um 22:28 Uhr
Moin,

zusätzlich zu Bastlas %path% ist
01.
set /a Logdest="%userprofile%\Desktop\ipconf-parsed.txt"
keine "schlechte" Idee (in dem Sinn, den Bastla meint), sondern mea culpa grober Unfug - mit set /a kann man mit Zahlen "rechnen", oder genauer die Variable "muß" eine ziffernkombination (incl. der für Grundrechenarten erlaubten Sonderzeichen) sein.

"leider dürfen "nur" User mit Adminrechten "wmic" benutzen.

Wenns nicht selbstgeschrieben sein muß und 3rd Party Werkzeuge erlaubt sind - hier muß es irgendwo eine Anleitung zum Programm BGinfo geben, das ohne Adminrechte und "installation" läuft und deine Zwecke "locker" erfüllt.

Gruß

edit
@ Bastla: Echt? siehste mal, wie du mir fehlst... Ich hab das nie probiert - auch komplett ohne rechtsklick als Admin?
Probier ich morgen gleich mal aus
/edit
Bitte warten ..
Mitglied: bastla
15.10.2012, aktualisiert um 22:18 Uhr
@ Rambo
"leider dürfen "nur" User mit Adminrechten "wmic" benutzen.
Abgesehen davon, dass Troubleshooting ohne Adminrechte in Bezug auf die Netzwerkeinstellungen sowieso eher mühsam werden dürfte , sind unter W7 keine Adminrechte mehr für "wmic" erforderlich ...

Hinsichtlich des "set /a" bin ich aber ganz bei Dir.

Grüße
bastla
Bitte warten ..
Mitglied: Schalterschorsch
15.10.2012 um 22:37 Uhr
Müsst nicht so streng sein, wenn ich mal zwei Buchstaben von woanders aus Versehen übernommen habe ;)
Dachte mir, dass es noch doofer aussähe, wenn der komplette Pfad wie vorher bei jeder Zeile drin steht.
Ja, das set /A habe ich fälschlicherweise reingebracht, das war von einer Zählschleife bei der Deklaration woanders noch übrig, habe es angepasst.
Path werde ich später noch abändern. Das tool sollte- wenn möglich ohne Zusatzanhängsel-Exes auskommen.
Adminrechte haben sie alle, es wäre besser, wenn es ohne ginge.
Bei vbs müsste mich mich mal richtig einlesen, da ich bisher alles mit batches hinbekommen habe, was nötig war.

Also euer Konsens wäre, dass es so nicht umsetzbar wäre ?
Bitte warten ..
Mitglied: bastla
15.10.2012 um 22:42 Uhr
Hallo Schalterschorsch!
so nicht umsetzbar
... würde ich eher als "unnötig mühsam" formulieren ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
16.10.2012, aktualisiert um 10:46 Uhr
moin,

Das mit der schöneren Auflistung liese sich eventuell so in der CMD-Line lösen: (> ist mein Prompt)
01.
>  (for /f "tokens=1,*delims=:" %h in (' ipconfig /all ') do @for /f "tokens=2,3 delims=:" %k in (": :%h:%i") do @if "%l" equ "" (set "ADapter=%h") else for /f "tokens=*" %a in ("%h") do @set "D=%a" &cmd /von /c "echo !Adapter!:!D:.^ ^=!:%i")>datei && find " LAN-Verbindung:" <Datei
Gruß Phil
Bitte warten ..
Mitglied: Schalterschorsch
26.11.2012 um 20:52 Uhr
Danke, die Antwort hat mir sehr geholfen
Bitte warten ..
Ähnliche Inhalte
Windows Server
Wie SQL-Server Verzeichnis parsen lassen?
Frage von YotYotWindows Server5 Kommentare

Hallo alle! Es gibt zwar keine SQL-Server-Rubrik hier, aber vielleicht kann mir hier ja trotzdem jemand helfen: Ich bekomme ...

Sonstige Systeme
Software zum Parsen von Emails und PDFs
Frage von Zero01Sonstige Systeme12 Kommentare

Hallo, ich suche für die Firma bei der ich zur Zeit arbeite eine Software mit der man Emails und ...

LAN, WAN, Wireless
Internetverbindung funktioniert erst nach ipconfig renew
Frage von Joshh1LAN, WAN, Wireless6 Kommentare

Hallo zusammen, wir nehmen mal folgendes an: Ich bin in einem Hotel und habe mir dort ein Appartment gekauft. ...

Windows Tools
Findstr und regex
gelöst Frage von tobmesWindows Tools5 Kommentare

Hi Experten, ich habe ziemlich viele PDF-Dateien, die ich mittels eines Batch-Files nach einem Bestimmten Muster durchsuchen möchte. Die ...

Neue Wissensbeiträge
Windows 10

Windows 10 Hello-Anmeldung per Foto ausgehebelt

Tipp von kgborn vor 3 StundenWindows 10

Windows Hello ist eine Funktion, um sich per Fingerabdruck-, Gesichts- oder Iriserkennung bei Windows 10-Geräten anzumelden (siehe), setzt aber ...

Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 10 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 11 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1012 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Heiß diskutierte Inhalte
Windows Server
SCCM 2016: PXE Boot des Clients schlägt fehl
Frage von gabeBUWindows Server23 Kommentare

Hallo Zusammen Ich habe eine Testumgebung erstellt um über SCCM 2016 einen virtuellen Client aufzusetzen. Folgende Maschinen habe ich ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen19 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Exchange Server
Exchange empfängt Emails - Kann aber keine Senden
gelöst Frage von niklasschaeferExchange Server11 Kommentare

Hallo, ich stehe gerade bei mir zuhause vor folgender Problemstellung. Gegeben sind 2x Hyper-V Host mit Windows Server 2016 ...