#1 6. Oktober 2007 Hi, folgendes Problem mit einem BATCH Script: Ich möchte mir mit dem Befehl Code: ipconfig | findstr "Ethernet Adapter" den Name der Netzwerkverbindung ausgeben lassen zur späteren Benutzung im Script. Das ist normal kein Problem da immer nur eine Netzwerkverbinung (also Adapter) in einem PC vorhanden ist aber leider mit unterschiedlichen Bezeichnungen eben. Halt z.B. "LAN-Verbindung 1", "LAN-Verbindung 2" usw. Das Problem ist nur, dass die Ausgabe dann in etwa so aussieht: Code: Ethernet Adapter LAN-Verbindung: Ich möchte jedoch nur das "LAN-Verbindung" rausziehen und als Variable benutzen. Irgendwelche Ideen ? Mfg Brainstorm + Multi-Zitat Zitieren
#2 6. Oktober 2007 AW: BATCH: Findstr Leider ist die String Manipulation in Windows Batch Scripten sehr eingeschränkt. Es sollte aber möglich sein die Ausgabe zuerst in eine Variable zu schreiben und dann mittels %variable:~start,length% den benötigten Teil des Strings aus der Variable zu ziehen. Siehe dazu auch: http://homepages.slingshot.co.nz/~dorrington/batchfiles/strings.htm + Multi-Zitat Zitieren
#3 6. Oktober 2007 AW: BATCH: Findstr Moin Man kann eine String per Batch aufteilen, indem man Trennzeichen(delim) bestimmt... Die einzelnen Stücke heißen Token... Hier gibt's eine Beschreibung. Die Frage ist natürlich nur ob man per Batch alle möglichen Strings vorhersehen kann... z.B. bei mir(Win2k) lautet die Ausgabe: Wieso schreibst du nicht ein richtiges kleines Programm in einer Hochsprache? Da gibt's dann bestimmt einfachere Möglichkeiten den Namen der Verbindung rauszukriegen... // Also: Ich hab mal ein kleines Workaround gemacht, das davon ausgeht, dass die Namen der Verbindungen in der Registry in diesem Pfad: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network irgendwo in einem Unterschlüssel gespeichert sind Bei mir steckte der Name in einem String mit dem Titel "Name". Also hab ich eine kleine Batch geschrieben ^^ Code: @echo off set REGFILE=%TEMP%\regprt.reg set REGFOLDER=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network regedit /e %REGFILE% %REGFOLDER% set STRFILE=%TEMP%\strfile.txt type %REGFILE% | find """Name""=""" >> %STRFILE% del %REGFILE% set REGFILE= set REGFOLDER= set OUTFILE=%TEMP%\out.txt FOR /F "tokens=2 delims==" %%a in (%STRFILE%) do echo.%%a >> %OUTFILE% del %STRFILE% Eigentlich müsste alles klar sein, besonders die vorletzte Zeile...(nach der Lektüre meines Links^^) Rauskommt eine Datei(%OUTFILE%) mit dem Inhalt Ich geh mal davon aus, dass sich unter WinXP an der Position des Strings in der Registry nix geändert hat... Ansonsten kann man unter WinXP anstatt Regedit auch REG benutzen.... (Mein Gott war mir langweilig....^^) + Multi-Zitat Zitieren