Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zeichen in Textdatei kürzen

Frage Entwicklung Batch & Shell

Mitglied: mp-home

mp-home (Level 1) - Jetzt verbinden

01.08.2006, aktualisiert 04.08.2006, 6930 Aufrufe, 15 Kommentare

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.
Mitglied: Biber
01.08.2006 um 15:25 Uhr
Moin mp-home,

Demo vom Cmd-Prompt aus:
01.
(=15:18:45  D:\temp=) 
02.
>for /f "tokens=3,*" %a in (text.txt) do @echo %a %b 
03.
E:\Ipod\MP3\Alanis Morissette\1998 - Supposed Former Infatuation Junkie 
04.
E:\Ipod\MP3\Alanis Morissette\2002 - Under Rug Swept 
05.
E:\Ipod\MP3\Alanis Morissette\2004 - So Called Chaos
Im Batch entsprechend (mit Umleitung in neue Datei):
01.
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:
01.
FOR %%h IN (D E F) DO if exist %%h: dir /s %%h:\*.mp3|FIND "Verzeichnis von" >>liste.txt
Bitte warten ..
Mitglied: mp-home
01.08.2006 um 15:34 Uhr
Hallo Biber,

erstmal recht herzlichen Dank. Funktioniert prima.
Vielleicht bei Zeiten noch ne kleine Erklärung dazu, damit ich nicht ganz so dumm sterbe :o)

Gruss
Bitte warten ..
Mitglied: Biber
01.08.2006 um 16:11 Uhr
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:
01.
@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
- oder - etwas lesbarer im Batch auf mehrere Zeilen verteilt:
01.
:: ---snipp ListMyMp3s.bat 
02.
@FOR %%h IN (D E F) DO ( 
03.
 @for /f "tokens=3,*" %%a in ('dir /s %%h:\*.mp3 ^2^>nul^|FIND "Verzeichnis von"') do @echo %%a %%b >>FckTheGEMA.txt 
04.
05.
::---snapp ListMyMp3s.bat
HTH Biber
Bitte warten ..
Mitglied: 16568
01.08.2006 um 16:12 Uhr
Wow, der erste, der nicht nur danke sagt, sondern auch den Sinn verstehen will.

Goil.


Lonesome Walker
Bitte warten ..
Mitglied: Biber
01.08.2006 um 16:16 Uhr
@LSW
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
Bitte warten ..
Mitglied: 16568
01.08.2006 um 16:17 Uhr
Man soll die Hoffnung nicht aufgeben...


Lonesome Walker
Bitte warten ..
Mitglied: mp-home
01.08.2006 um 16:41 Uhr
Bitte warten ..
Mitglied: mp-home
01.08.2006 um 16:44 Uhr
Hallo Biber,

das mit dem Token hab ich soweit, danke.
Was ich noch nicht verstanden habe:

@echo %%a %%b
und
^2^>nul^

Danke

PS: Vielen Dank für die Blumen. Die Jugend von heute ist in diesem Fall auch schon 37 Jahre alt. Natürlich möchte ich auch gerne wissen, was ich mache.
Ich werde jedenfalls heute Abend ein Becks auf Euch trinken.
Bitte warten ..
Mitglied: 16568
01.08.2006 um 16:45 Uhr
Tja Biber, aus mit der Illusion


Lonesome Walker
Bitte warten ..
Mitglied: Biber
01.08.2006 um 16:56 Uhr
Also,

Was ich noch nicht verstanden habe:

@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
Bitte warten ..
Mitglied: mp-home
01.08.2006 um 17:12 Uhr
So, vielen Dank für die Hilfe, müsste es wohl soweit verstanden haben.
Bitte warten ..
Mitglied: Biber
03.08.2006 um 19:12 Uhr
So, vielen Dank für die Hilfe, müsste es wohl soweit verstanden haben.
Sollte Dir so etwas noch einmal passieren in diesem Forum, dann bitte den Beitrag auf "Gelöst" setzen. Danke.


Diesmal mach ich das...
Bitte warten ..
Mitglied: mp-home
04.08.2006 um 11:53 Uhr
Hallo Biber,

hab das auch versucht, aber den Klick nicht gefunden.
Vielleicht hierzu noch einen kleinen Tip.

Gruss Markus
Bitte warten ..
Mitglied: Biber
04.08.2006 um 12:34 Uhr
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
Bitte warten ..
Mitglied: mp-home
04.08.2006 um 13:34 Uhr
Hab es nachgeschaut. Stimmt natürlich.
Nochmals vielen Dank und natürlich auch ein schönes Wochenende.

Gruss Markus
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
VB for Applications
gelöst VBA Text mit Format übertragen und Zeichen ergänzen (11)

Frage von Dau12345 zum Thema VB for Applications ...

Java
gelöst Textdatei in Array speichern (zeilenweise) (1)

Frage von Bruchsal zum Thema Java ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...