mapick
Goto Top

Inhalte aus einem Textfile auslesen und in eine neue Datei kopieren

Für gestandene Scripter bestimmt kein Problem.....

Hallo Leuteface-smile

Ich müsste aus einem textfile mit folgendem Inhalt nur den Bereich, welchen ich fett und kursiv formatiert habe, auslesen und in eine neue Datei einfügen.


There are 1 interfaces in the system.
Interface 0:
GUID: 2d7c71b3-5738-4d81-bedd-41957fa6004c
Dell Wireless 1490 Dual Band WLAN Mini-Card - Deterministic Network Enhancer Miniport
State: "authenticating"

Command "ei" completed successfully.


Ich bekomme es zwar hin nur die Zeile auszulesen, aber mit einem von-bis komme ich nicht klar.

Vielen Dank für eure Mühe

Gruß
MaPi

Content-Key: 121640

Url: https://administrator.de/contentid/121640

Printed on: April 19, 2024 at 02:04 o'clock

Member: bastla
bastla Jul 30, 2009 at 09:13:11 (UTC)
Goto Top
Hallo MaPick!

Etwa so:
@echo off & setlocal
set "Ein=D:\Textfile.txt"  
set "Aus=D:\NurGUID.txt"  

for /f "tokens=1*" %%i in ('findstr /b /c:"GUID: " "%Ein%"') do >"%Aus%" echo %%j  
Getrennt wird übrigens am ersten Leerzeichen der Zeile ...

Grüße
bastla

[Eidt] Suchstring noch um Leerzeichen erweitert [/Edit]
Member: MaPick
MaPick Jul 30, 2009 at 10:17:44 (UTC)
Goto Top
Wie ist das bitte gemeint: Suchstring erweitern.....
Member: bastla
bastla Jul 30, 2009 at 10:25:39 (UTC)
Goto Top
Hallo MaPick!
Wie ist das bitte gemeint: Suchstring erweitern.....
Ich habe den Suchstring (= der Text, anhand dessen die entsprechende Zeile gefunden werden soll = "GUID: ") um das Leerzeichen am Ende erweitert (etwa 1 Minute 16 Sekunden nach dem Posten des Kommentars face-wink) ...

Grüße
bastla
Member: MaPick
MaPick Jul 30, 2009 at 10:32:05 (UTC)
Goto Top
Ich habe die Variablen durch meine ersetzt und die Batch ausgeführt..... nichts passiertface-sad
Es wird keine Datei erzeugt.
Member: bastla
bastla Jul 30, 2009 at 10:42:27 (UTC)
Goto Top
Hallo MaPick!

Eine Datei wird nur erzeugt, wenn der Suchstring mit der exakt gleichen Schreibweise am Beginn der Zeile steht (wie in Deinen Beispieldaten oben) ...

Wie sah denn der Code aus, mit dem Du bereits die Zeile auslesen konntest?

Grüße
bastla
Member: MaPick
MaPick Jul 30, 2009 at 10:50:05 (UTC)
Goto Top
Hi bastla,

ich habe den Ansatz mit der einzelnen Zeile erst mal nicht weiterverfolgt.
Ich dachte mir das dieses auch direkt mit der originalen Datei funktioniert.
Liegt das evtl. daran das im originalen Export File vor GUID: noch ein Tab drin ist.

Habe vor GUID: mal ein Tab eingebaut. Jetzt wird die Datei erzeugtface-smile
Aber in der Datei steht nur %j und ich bräuchte ja den Wert hinter GUID:

Gruß
MaPi
Member: bastla
bastla Jul 30, 2009 at 10:55:55 (UTC)
Goto Top
Hallo MaPick!

Sorry, das zweite Prozentzeichen vor dem "j" scheint irgendwo auf der Strecke geblieben zu sein - ich korrigiere es oben auch noch ...

... außerdem muss dann das Trennzeichen noch genau spezifiziert werden:
for /f "tokens=1* delims= " %%i in ('findstr /b /c:"GUID: " "%Ein%"') do >"%Aus%" echo %%j
Grüße
bastla
Member: MaPick
MaPick Jul 30, 2009 at 11:02:32 (UTC)
Goto Top
Hi,

habe den ersten Fehler gefunden. Du hast %%i geschrieben und dann im Output %%j.
So weit so gut.
Aber im Output File steht jetzt GUID:
Mir geht es aber nur um den Wert dahinter 2d7c71b3-5738-4d81-bedd-41957fa6004c

Gruß
MaPi
Member: bastla
bastla Jul 30, 2009 at 11:07:35 (UTC)
Goto Top
Hallo MaPick!

Würdest Du bitte das Korrigieren von Fehlern mir überlassen und das "falsche" %%j wieder eintragen ...

Grüße
bastla
Member: MaPick
MaPick Jul 30, 2009 at 11:13:21 (UTC)
Goto Top
Hi,
du bist der Chef face-wink
Mit deiner Ergänzung funktioniert es nun auch.
Sollte nicht besserwisserich rüber kommen, sorry.

Gruß
MaPi
Member: bastla
bastla Jul 30, 2009 at 11:21:32 (UTC)
Goto Top
Hallo MaPick!

Kein Problem - nur eine Verzögerung (und ich hatte noch kein Mittagessen) ...

Grüße
bastla
Member: MaPick
MaPick Jul 30, 2009 at 12:07:04 (UTC)
Goto Top
Hier nun mal das komplette Kunstwerk:

rem --------------Enumerate Wireless Interface and export to ei.txt-------------

wlan ei >> c:\windows\temp\wlan\ei.txt

echo off--------------Copy GUID ID from ei.txt to guid.txt--------------------

setlocal
set "Ein=c:\Windows\temp\wlan\ei.txt"
set "Aus=c:\Windows\temp\wlan\guid.txt"
for /f "tokens=1* Delims= " %%i in ('findstr /b /c:" GUID: " "%Ein%"') do >"%Aus%" echo %%j

echo off--------------Setup Wireless Interface with nw1.xml----------------

for /f %%i in (GUID.txt) do set GUID=%%i
wlan sp %GUID% c:\windows\temp\wlan\nw1.xml

echo off-------------Export Wireless Profile List to gpl.txt---------------

wlan gpl %GUID%>>gpl.txt

Jetzt versuche ich noch eine Abfrage der erzeugten gpl.txt.
Diese soll bei nicht vorhanden sein des WLAN Profiles NW über blat.exe eine Mail an mich schicken.
Dafür muss ich ja irgendwie eine IF Abfrage basteln.

Der Inhalt der gpl.txt sieht so aus:

There are 1 profiles on the interface.
"NW"
Command "gpl" completed successfully.


Kannst du mir da evtl auch weiter helfen?

Gruß
MaPi