Mehrere Wörter, Zeichen aus einer Textdatei löschen
Moin, da dies in einer WINPE Umgebung umgesetzt werden muss, bleiben mir leider nur die Batch, zusätzliche Programme die in der Batch gestartet werden könne, kann ich aber beim Start des PE von einem Share nachladen
Ich habe folgende Textdatei mit folgendem Inhalt:
Ich habe bisher immer nur das Löschen von Zeilen gefunden, was ich selber schon angewendet habe, da bei jeder Ausgabe dieser Informationen noch 3 Zeilen unnötiger Mist drinstand.
Jetzt wäre es natürlich am besten, wenn ich die Wörter vor den jeweiligen Informatione (SN, UUID und MAC-Adresse) löschen könnte. Habe gestern schon 2 Stunden lang rumprobiert mit for schleifen, find, findstr (Bei type in Verbindung mit einer Pipe zu find, hieß es nur %% kann syntaktisch nicht verwendet werden).
Bin aber zu nix gekommen, sodass ich aufgehört habe. Deshalb wende ich mich an euch liebe Community
Gibt es irgendeine Möglichkeit die unnötigen Infos (Der ganze Text vor der SN, UUID und die "-" in den MAC-Adressen) automatisiert löschen zu lassen? Das muss aus einer Batch heraus funktionieren, da ich diese Infos bei der Einrichtung von mehreren Blade-Servern erhalte und ich froh bin, dass ich diese Infos schon so "sauber" bekomme.
Gruß
Seelbreaker
Ich habe folgende Textdatei mit folgendem Inhalt:
SYSTEM_PROD_DATA.SysInfoSerialNum=06PCZ16
SYSTEM_PROD_DATA.SysInfoUUID=C911A40C0BEA11E1A21E5CF3FC7AC074
iSCSI.MacAddress.1=00-10-18-B7-7E-28
iSCSI.MacAddress.2=00-10-18-B7-7E-2A
iSCSI.MacAddress.3=00-10-18-B7-7E-2C
iSCSI.MacAddress.4=00-10-18-B7-7E-2E
iSCSI.MacAddress.5=5C-F3-FC-7A-C0-74
iSCSI.MacAddress.6=5C-F3-FC-7A-C0-76
Ich habe bisher immer nur das Löschen von Zeilen gefunden, was ich selber schon angewendet habe, da bei jeder Ausgabe dieser Informationen noch 3 Zeilen unnötiger Mist drinstand.
Jetzt wäre es natürlich am besten, wenn ich die Wörter vor den jeweiligen Informatione (SN, UUID und MAC-Adresse) löschen könnte. Habe gestern schon 2 Stunden lang rumprobiert mit for schleifen, find, findstr (Bei type in Verbindung mit einer Pipe zu find, hieß es nur %% kann syntaktisch nicht verwendet werden).
Bin aber zu nix gekommen, sodass ich aufgehört habe. Deshalb wende ich mich an euch liebe Community
Gibt es irgendeine Möglichkeit die unnötigen Infos (Der ganze Text vor der SN, UUID und die "-" in den MAC-Adressen) automatisiert löschen zu lassen? Das muss aus einer Batch heraus funktionieren, da ich diese Infos bei der Einrichtung von mehreren Blade-Servern erhalte und ich froh bin, dass ich diese Infos schon so "sauber" bekomme.
Gruß
Seelbreaker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176985
Url: https://administrator.de/forum/mehrere-woerter-zeichen-aus-einer-textdatei-loeschen-176985.html
Ausgedruckt am: 22.12.2024 um 23:12 Uhr
5 Kommentare
Neuester Kommentar
Aloha,
naja, wenn du mit
arbeitest, sollte das Ergebnis doch so rauskommen, wie du es möchtest, oder?
greetz André
POC:
@Friemler, was ein Aufwand
naja, wenn du mit
for /f "usebackq tokens=2-7 delims==-" %%s in ("testdatei.txt") do >>"neue_testdatei.txt" echo %%s%%t%%u%%v%%w%%x
greetz André
POC:
E:\Skripte>for /F "usebackq tokens=2-7 delims==-" %s in ("testdatei.txt") do ech
o %s%t%u%v%w%x 1>>"neue_testdatei.txt"
E:\Skripte>echo 06PCZ16 1>>"neue_testdatei.txt"
E:\Skripte>echo C911A40C0BEA11E1A21E5CF3FC7AC074 1>>"neue_testdatei.txt"
E:\Skripte>echo 001018B77E28 1>>"neue_testdatei.txt"
E:\Skripte>echo 001018B77E2A 1>>"neue_testdatei.txt"
E:\Skripte>echo 001018B77E2C 1>>"neue_testdatei.txt"
E:\Skripte>echo 001018B77E2E 1>>"neue_testdatei.txt"
E:\Skripte>echo 5CF3FC7AC074 1>>"neue_testdatei.txt"
E:\Skripte>echo 5CF3FC7AC076 1>>"neue_testdatei.txt"
E:\Skripte>type "neue_testdatei.txt"
06PCZ16
C911A40C0BEA11E1A21E5CF3FC7AC074
001018B77E28
001018B77E2A
001018B77E2C
001018B77E2E
5CF3FC7AC074
5CF3FC7AC076
E:\Skripte>pause
Drücken Sie eine beliebige Taste . . .
@Friemler, was ein Aufwand
Hallo Seelbreaker,
teste mal folgendes:
Die Zeilen 3 und 4 musst du anpassen. Das Script extrahiert die reinen Informationen aus der Eingabedatei, von deinen Beispieldaten würde also nur folgendes übrigbleiben:
Gruß
Friemler
[EDIT]
Oder Du nimmst die Kurz-Und-Schmerzlos-Lösung von Skyemugen.
[/EDIT]
teste mal folgendes:
@echo off & setlocal
set "InFile=D:\test.txt"
set "OutFile=D:\test_out.txt"
(for /f "tokens=1,* delims=:" %%a in ('findstr /n "$" "%InFile%"') do (
for /f "tokens=1,* delims==" %%c in ("%%b") do (
if %%a gtr 2 (
for /f "tokens=1-6 delims=-" %%e in ("%%d") do (
echo\%%e%%f%%g%%h%%i%%j
)
) else (
echo\%%d
)
)
)
) > "%OutFile%"
Die Zeilen 3 und 4 musst du anpassen. Das Script extrahiert die reinen Informationen aus der Eingabedatei, von deinen Beispieldaten würde also nur folgendes übrigbleiben:
06PCZ16
C911A40C0BEA11E1A21E5CF3FC7AC074
001018B77E28
001018B77E2A
001018B77E2C
001018B77E2E
5CF3FC7AC074
5CF3FC7AC076
Gruß
Friemler
[EDIT]
Oder Du nimmst die Kurz-Und-Schmerzlos-Lösung von Skyemugen.
[/EDIT]