Zeichen in Textdatei kürzen
Per Batch Verzeichnisse in .txt Datei schreiben und anschliessend .txt ändern/kürzen
Hallo an alle,
habe ein Problem beim erstellen einer Batchdatei und hoffe natürlich auf Eure Hilfe.
Ich möchte alle Alben eines mp3 Verzeichnisses aufgelistet in eine .txt Datei schreiben.
Das funktioniert bislang so:
FOR %%h IN (D E F) DO if exist %%h: dir /s %%h:\*.mp3 >>test.txt
FIND "Verzeichnis von" test.txt > liste.txt
als Ergebnis (liste.txt) erhalte ich nun:
TEST.TXT
Verzeichnis von E:\Ipod\MP3\Alanis Morissette\1998 - Supposed Former Infatuation Junkie
Verzeichnis von E:\Ipod\MP3\Alanis Morissette\2002 - Under Rug Swept
Verzeichnis von E:\Ipod\MP3\Alanis Morissette\2004 - So Called Chaos
...
Wie kann ich nun die liste.txt um die Zeichenfolge 'Verzeichnis von' kürzen und ggf. in eine neue .txt.datei schreiben.
Hallo an alle,
habe ein Problem beim erstellen einer Batchdatei und hoffe natürlich auf Eure Hilfe.
Ich möchte alle Alben eines mp3 Verzeichnisses aufgelistet in eine .txt Datei schreiben.
Das funktioniert bislang so:
FOR %%h IN (D E F) DO if exist %%h: dir /s %%h:\*.mp3 >>test.txt
FIND "Verzeichnis von" test.txt > liste.txt
als Ergebnis (liste.txt) erhalte ich nun:
TEST.TXT
Verzeichnis von E:\Ipod\MP3\Alanis Morissette\1998 - Supposed Former Infatuation Junkie
Verzeichnis von E:\Ipod\MP3\Alanis Morissette\2002 - Under Rug Swept
Verzeichnis von E:\Ipod\MP3\Alanis Morissette\2004 - So Called Chaos
...
Wie kann ich nun die liste.txt um die Zeichenfolge 'Verzeichnis von' kürzen und ggf. in eine neue .txt.datei schreiben.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 37088
Url: https://administrator.de/forum/zeichen-in-textdatei-kuerzen-37088.html
Ausgedruckt am: 23.12.2024 um 06:12 Uhr
15 Kommentare
Neuester Kommentar
Moin mp-home,
Demo vom Cmd-Prompt aus:
Im Batch entsprechend (mit Umleitung in neue Datei):
HTH Biber
P.S. Kannst es oben in einem Schritt abfackeln:
Demo vom Cmd-Prompt aus:
(=15:18:45 D:\temp=)
>for /f "tokens=3,*" %a in (text.txt) do @echo %a %b
E:\Ipod\MP3\Alanis Morissette\1998 - Supposed Former Infatuation Junkie
E:\Ipod\MP3\Alanis Morissette\2002 - Under Rug Swept
E:\Ipod\MP3\Alanis Morissette\2004 - So Called Chaos
Im Batch entsprechend (mit Umleitung in neue Datei):
for /f "tokens=3,*" %%a in (text.txt) do @echo %%a %%b>>textcut.txt
HTH Biber
P.S. Kannst es oben in einem Schritt abfackeln:
FOR %%h IN (D E F) DO if exist %%h: dir /s %%h:\*.mp3|FIND "Verzeichnis von" >>liste.txt
Freut mich, Markus,
zu erklären ist da nicht so viel.
Mit dem "FOR /F"-Befehl werden Zeilen in einzelne "Token" (in etwa: Worte, Bestandteile) zerlegt.
Das Standard-Trnnzeichen zwischen "Token" ist ein Leerzeichen, und wenn ich von einem "Satz"/einer Zeile der vorliegenden Form alle Token ab dem dritten haben will sowie pauschal "alles, was danach kommt", dann ist dafür die Syntax
FOR /f "Tokens=3,*" ......
Im Prinzip kannst Du sogar alles mit einer Zeile vom CMD-Prompt abfeuern:
- oder - etwas lesbarer im Batch auf mehrere Zeilen verteilt:
HTH Biber
zu erklären ist da nicht so viel.
Mit dem "FOR /F"-Befehl werden Zeilen in einzelne "Token" (in etwa: Worte, Bestandteile) zerlegt.
Das Standard-Trnnzeichen zwischen "Token" ist ein Leerzeichen, und wenn ich von einem "Satz"/einer Zeile der vorliegenden Form alle Token ab dem dritten haben will sowie pauschal "alles, was danach kommt", dann ist dafür die Syntax
FOR /f "Tokens=3,*" ......
Im Prinzip kannst Du sogar alles mit einer Zeile vom CMD-Prompt abfeuern:
@FOR %h IN (D E F) DO @for /f "tokens=3,*" %a in ('dir /s %h:\*.mp3 ^2^>nul^|FIND "Verzeichnis von"') do @echo %a %b
:: ---snipp ListMyMp3s.bat
@FOR %%h IN (D E F) DO (
@for /f "tokens=3,*" %%a in ('dir /s %%h:\*.mp3 ^2^>nul^|FIND "Verzeichnis von"') do @echo %%a %%b >>FckTheGEMA.txt
)
::---snapp ListMyMp3s.bat
HTH Biber
Wow, der erste, der nicht nur danke sagt, sondern auch den Sinn verstehen will.
Goil.
Lonesome Walker
Goil.
Lonesome Walker
@lsw
So wie mp-home es ja auch getan hat oben.. *doppelstrahl*
Vielleicht ist die heutige Jugend doch besser als die meiner Generation... *seufz*
Biber
der erste, der nicht nur danke sagt, sondern auch den Sinn verstehen will
Ja, irgendwie werde ich richtig euphorisch... es war auch gestern schon ein Neuer da, der "funktioniert nicht" statt "geht nicht" geschrieben hat. *strahl*So wie mp-home es ja auch getan hat oben.. *doppelstrahl*
Vielleicht ist die heutige Jugend doch besser als die meiner Generation... *seufz*
Biber
Man soll die Hoffnung nicht aufgeben...
Lonesome Walker
Lonesome Walker
Tja Biber, aus mit der Illusion
Lonesome Walker
Lonesome Walker
Also,
Die Token, die ich "haben will" werden automatisch hochgezählt.
Wenn ich "Tokens=1-6" haben wollte bei einer Zählvariablen %a...
dann würden rechts der "DO..."-Anweisung diese Token als %a %b %c %d %e %f zur Verfügung stehen.
Wenn ich nur "Tokens=3,*" haben will, sprich "Token 3 und den Rest", dann fallen heraus "%a" und "%b"
Im Batch werden jeweils zwei %-Zeichen [%%a] vor Zählvariablen geschrieben; am CMD-Prompt nur eins [%a].
Das etwas kryptische "^2^>nul" ist eigentlich ein maskiertes "2>nul"
Mit "2>nul" nach einem beliebigen internen oder externen CMD-Befehl werden alle Fehlermeldungen wie zum Beispiel "Datei nicht gefunden" beim DIR-Befehl entsorgt.
Da ich in der FOR-Klammer eine "Anweisung in einer Anweisung" habe, muss ich die CMD-Steuerzeichen ">" und "2" mit einem Caret "^" maskieren.
Thats all.
P.S. @lsw
Ach, wenn der Becks trinkt, kann es kein schlechter Mensch sein.
Frank, der Biber aus Bremen *Becksplongggggggg
Was ich noch nicht verstanden habe:
@echo %%a %%b
und
^2^>nul^
@echo %%a %%b
und
^2^>nul^
Die Token, die ich "haben will" werden automatisch hochgezählt.
Wenn ich "Tokens=1-6" haben wollte bei einer Zählvariablen %a...
dann würden rechts der "DO..."-Anweisung diese Token als %a %b %c %d %e %f zur Verfügung stehen.
Wenn ich nur "Tokens=3,*" haben will, sprich "Token 3 und den Rest", dann fallen heraus "%a" und "%b"
Im Batch werden jeweils zwei %-Zeichen [%%a] vor Zählvariablen geschrieben; am CMD-Prompt nur eins [%a].
Das etwas kryptische "^2^>nul" ist eigentlich ein maskiertes "2>nul"
Mit "2>nul" nach einem beliebigen internen oder externen CMD-Befehl werden alle Fehlermeldungen wie zum Beispiel "Datei nicht gefunden" beim DIR-Befehl entsorgt.
Da ich in der FOR-Klammer eine "Anweisung in einer Anweisung" habe, muss ich die CMD-Steuerzeichen ">" und "2" mit einem Caret "^" maskieren.
Thats all.
P.S. @lsw
Ach, wenn der Becks trinkt, kann es kein schlechter Mensch sein.
Frank, der Biber aus Bremen *Becksplongggggggg
Moin mp-home,
soweit es aus Überlieferungen kenne (habe noch keine Frage gestellt hier):
- Wenn Du angemeldet bist...
- Auf den Eröffnungsbeitrag, Button "Editieren" drücken
- unter den Texteingabefenstern, in denen der Beitrag angezeigt wird, sollen sich mehrere Ankreuz-Kästchen befinden
- das Kästchen "Dieser Beitrag gilt als gelöst" (sinngemäß) per Mausklick mit einem Häkchen versehen.
Schönes Wochenende
Biber
soweit es aus Überlieferungen kenne (habe noch keine Frage gestellt hier):
- Wenn Du angemeldet bist...
- Auf den Eröffnungsbeitrag, Button "Editieren" drücken
- unter den Texteingabefenstern, in denen der Beitrag angezeigt wird, sollen sich mehrere Ankreuz-Kästchen befinden
- das Kästchen "Dieser Beitrag gilt als gelöst" (sinngemäß) per Mausklick mit einem Häkchen versehen.
Schönes Wochenende
Biber