hesperus
Goto Top

per Batch, Inhalt eines Ordners nach Größe sortiert auflisten

Ich bastle gerade an einer Möglichkeit, den Inhalt eines Ordners per Batchdatei in ein txt-File auszugeben. Ok ich gebe zu das klingt nicht alzu spannend daher unten ein paar mehr details *g*.

Hallo zusammen,

ich habe einen Ordner, in dem sich eine festgelegte Anzahl von Dateien pro Tag ändert. Ich möchte jetzt eine Batch-Datei schreiben, welche einmal täglich diesen Ordner überprüft und den Inhalt, nach Änderungsdatum sortiert, in eine txt-datei schreibt. Soweit auch kein Problem per DIR Befehl. Mein Problem ist, dass ich die Informationen mit Änderungsdatum und größe benötige aber ohne leerzeichen und Kopfzeillen. Mit dem Parameter /b bekomme ich zwar genau diese ansicht aber nicht die restlichen Infos, daher habe ich versucht die Datei, welche durch den DIR Befehl erzeugt wurde zu bearbeiten aber leider konnte ich nicht das gewünschte Ergebniss erreichen.

Ich habe einen Bsp. Ordner mit den Dateien 1.txt, 2.txt, 3.txt und 4.txt alle mit unterschiedlichen größen, wobei 1.txt die älteste und 4.txt die neuste ist. Wenn ich diesen Ordner per DIR auslesen lasse bekomme ich folgende txt-Datei:

%Tempdatei%:
   Volume in Laufwerk D: hat keine Bezeichnung.
 Volumeseriennummer: 0C1A-475B

 Verzeichnis von D:\Bsp\Test
20.06.2009  16:33    <DIR>          ..
20.06.2009  16:33    <DIR>          .
19.06.2009  22:56            71.700 4.txt
19.06.2009  22:53            54.970 3.txt
19.06.2009  22:52            37.284 2.txt
19.06.2009  22:51            22.466 1.txt
               4 Datei(en),        186.420 Bytes
               2 Verzeichnis(se), 24.748.670.976 Bytes frei 

Bei diesem Ordner würden mich jetzt als bsp. die neusten zwei Dateien interessieren (also 3 u. 4.txt) eine Bearbeitung der Datei über den Ansatz "lösche die ersten 7 Zeilen" ist nicht möglich, da die Einträge <DIR> nicht immer an der selben stelle stehen. Ich habe es schon über eine batch-zeile versucht, welche die störenden Zeilen auslässt ala
 find/v "DIR" %temp%\%Tempdatei% > %temp%\endatei.txt   
versucht, aber diese Variante entfernt zwar dasgewünschte aber fügt eine neue Zeile ein, welche ich nicht über diese weg entfernen kann.
Bsp.: (siehe Zeile 2)
 
---------- TEMP_Test.TXT
 Volume in Laufwerk D: hat keine Bezeichnung.
 Volumeseriennummer: 0C1A-475B

 Verzeichnis von D:\Bsp\Test

19.06.2009  22:56            71.700 4.txt
19.06.2009  22:53            54.970 3.txt
19.06.2009  22:52            37.284 2.txt
19.06.2009  22:51            22.466 1.txt
               4 Datei(en),        186.420 Bytes
               2 Verzeichnis(se), 24.748.670.976 Bytes frei 

Auch meine Versuche über entsprechende For-Befehle haben bisher leider nicht die gewünschten erfolge gebracht, daher hoffe ich das Ihr mir da weiterhelfen könnt.

Habt schon mal vielen Dank
MfG Hesperus

Content-ID: 118658

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

Ausgedruckt am: 05.11.2024 um 12:11 Uhr

paulepank
paulepank 20.06.2009 um 23:30:43 Uhr
Goto Top
Hallo Hesperus,

das sollte am Prompt doch so gehen
dir /a-d /o-d d:\Bsp\Test | findstr /b /r "[0-3]"  

wenn das Ergebnis so gewünscht dann noch in eine Datei ausgeben.

cu paulepank
Hesperus
Hesperus 21.06.2009 um 00:06:49 Uhr
Goto Top
Hallo Paulepank,

danke für die Hilfe. Manchmal sieht man wirklich den Wald vor lauter Bäumen nicht. Hat wunderbar funktioniert. Ich setze den Beitrag auf gelöst. Nochmal Danke.

schönes We noch
Hesperus