Daten via findstr ein eine neue Datei schreiben
Hallo zusammen,
vielleicht könnt ihr mir bei einem Batch in Verbindung mit findstr helfen. Ich habe schon ein wenig die anderen Beiträge studiert, finde aber nichts was 100% passt und bekomme es selber mit meinem Wissensstand auch nicht hin.
Ich habe eine Textdatei die wie folgt aufgebaut ist:
Diese Liste sollte so modifiziert werden das am Ende eine neue Liste mit den einzelnen Kapiteln heraus kommt, jeweils mit einer Leerzeile als Abstand zwischen den Einträgen.
Gerne kann mit findstr dafür eine gesonderte Textdatei erstellt werden.
Optional wären noch folgende Dinge super:
Danke schonmals! Schöne Grüße,
Godzilla13
vielleicht könnt ihr mir bei einem Batch in Verbindung mit findstr helfen. Ich habe schon ein wenig die anderen Beiträge studiert, finde aber nichts was 100% passt und bekomme es selber mit meinem Wissensstand auch nicht hin.
Ich habe eine Textdatei die wie folgt aufgebaut ist:
PFAD\GENERATOR>copy PFAD\Textnr_00\010000-00_00_00.xml MODULE\010000-00_00_00.xml
Das System kann die angegebene Datei nicht finden.
PFAD\GENERATOR>copy PFAD\Textnr_81\018189-00_00_01.xml MODULE\018189-00_00_01.xml
1 Datei(en) kopiert.
PFAD\GENERATOR>copy PFAD\Textnr_73\017322-02_01_01.xml MODULE\017322-02_01_01.xml
1 Datei(en) kopiert.
PFAD\GENERATOR>copy PFAD\Textnr_73\017337-00_01_02.xml MODULE\017337-00_01_02.xml
1 Datei(en) kopiert.
usw.
010000-00_00_00.xml
018189-00_00_01.xml
017322-02_01_01.xml
017337-00_01_02.xml
Gerne kann mit findstr dafür eine gesonderte Textdatei erstellt werden.
Optional wären noch folgende Dinge super:
- Das .xml kann noch entfernt werden, sodass nur die reinen Kapitelnamen erscheinen.
- Als Dateiname den Dateinamen einer anderen Datei heranziehen welche unter PFAD\KAPITELLISTE\ als *.xml Datei zu finden ist. In dem Pfad liegt immer nur eine Datei. Bsp.: Datei 18106-01-01.xml bewirkt den Dateinamen 18106-01-01.txt
- Angabemöglichkeit eines Ausgabepfads für die zu generierende neue Textdatei mit dem gewünschten Inhalt.
Danke schonmals! Schöne Grüße,
Godzilla13
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 154413
Url: https://administrator.de/contentid/154413
Ausgedruckt am: 26.11.2024 um 02:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo Godzilla13!
Hinsichlich der Pfadangaben wie zB
wäre noch eine genauere Beschreibung sinnvoll - insbesondere, ob Leerzeichen vorkommen können.
Auf Basis der angegebenen Beispiele wäre die Minimalvariante (zum Testen direkt in der CMD-Shell)
Die Ausgabe erfolgt so nur auf dem Bildschirm - zum Testen mit einer Datei als Ziel einfach "
Grüße
bastla
[Edit] Fehlenden Teil der Zeile nachgereicht [/Edit]
Hinsichlich der Pfadangaben wie zB
PFAD\Textnr_00\010000-00_00_00.xml
Auf Basis der angegebenen Beispiele wäre die Minimalvariante (zum Testen direkt in der CMD-Shell)
for /f "tokens=3" %i in ('findstr /i "\.xml" "D:\Die Textdatei.txt"') do @for /f "delims=" %a in ("%i") do @(echo %~na & echo\)>>con
con
" durch einen Pfad ersetzen ...Als Dateiname den Dateinamen einer anderen Datei heranziehen
Dateiname wofür?Grüße
bastla
[Edit] Fehlenden Teil der Zeile nachgereicht [/Edit]
Hallo Godzilla13!
Sorry - da war ein nicht ganz unwichtiger Teil der Zeile beim Posten auf der Strecke geblieben - ist jetzt aber oben schon ergänzt ...
Hinsichtlich der "Dateinamen" bin ich offensichtlich etwas begriffstutzig: Wenn nur eine Liste (mit Kapiteln) erzeugt wird, wozu dann mehrere Dateinamen?
Noch eine Klarstellung zu den Pfaden: Diese enthalten demnach keine Leerzeichen?
Grüße
bastla
Sorry - da war ein nicht ganz unwichtiger Teil der Zeile beim Posten auf der Strecke geblieben - ist jetzt aber oben schon ergänzt ...
Hinsichtlich der "Dateinamen" bin ich offensichtlich etwas begriffstutzig: Wenn nur eine Liste (mit Kapiteln) erzeugt wird, wozu dann mehrere Dateinamen?
Noch eine Klarstellung zu den Pfaden: Diese enthalten demnach keine Leerzeichen?
Grüße
bastla
Hallo Godzilla13!
In Batch sind alle Laufvariablen von "AnführungsProzentzeichen zu schreiben - zB wäre das für die zitierte Stelle dann
Zu den Dateinamen: Die einzelnen Bestandteile kannst Du so erhalten (wieder für die Konsole mit nur einem Prozentzeichen):
Details dazu mit "
Grüße
bastla
[Edit] "%" werden jetzt auch so genannt [/Edit]
In Batch sind alle Laufvariablen von "
for
"-Schleifen (hier also %i und %a) mit doppelten echo %%~na & echo\)>>con
for /f "tokens=3" %i in ('findstr /i "\.xml" "D:\Die Textdatei.txt"') do @for /f "delims=" %a in ("%i") do @(echo Pfad: %~dpa & echo Name: %~na & echo Typ: %~xa & echo Name + Typ: %~nxa)>>con
for /?
" (ziemlich am Ende) ...Grüße
bastla
[Edit] "%" werden jetzt auch so genannt [/Edit]