
130834
01.02.2017, aktualisiert um 00:10:14 Uhr
Datei-Endungen, Listen und Sortierung (Batch)
Hallo Leute,
Ich habe ein kompliziertes ( so wie eigentlich immer, und kompliziert natürlich subjektiv ) Effizienz-Problem.
Ich versuch gerade eine Liste mit Dateien welche eine bestimmte Datei-Endung haben,
sortiert nach ihrem Erstell-Datum mit der ältesten als erstes, auszugeben.
Also, Dateien, nur die die Bestimmte Datei-Endungen haben, Nach ihrem Erstell-Datum sortiert, mit der ältesten zuerst, in eine Datei ausgeben.
Und dabei die Dateien welche die Endung haben auch noch zählen.
Und das nur bei Dateien in EINEM bestimmten Ordner, ohne Unterordner.
Die Liste wird dann weiterverarbeitet, mit einem kompliziert aussehenden ( objektiv ) Namens-Datums-Gebungs-Dings-Sortierungs-Algorithmus.
Das bisherige Gewirr an Befehlen das ich habe geht über das was man ineffizient nennen könnte hinaus.
Es sieht genau so aus;
!CR! ist ein Carriage Return Charakter
Es gibt noch keinen Mechanismus um die Dateien zu zählen, momentan werden ALLE gezählt, denn ich wollte das ganze nicht NOCH langsamer machen.
hat jemand eine Idee wie man das schneller / besser / Effizienter machen könnte?
Die nachfolgende Verarbeitung sieht ( rein für Informations- und Verständnis-Zwecke ) in etwa so aus;
Die Liste enthält momentan DATUM ZEIT DATEI, weshalb ich den Dritten Token nehme.
:number füllt CUR nach vorne bis zu 4 Zeichen mit Nullen auf ( also z.b. CUR = 3 der return von number ist dann 0003 )
schönen Abend noch
lg clragon
Ich habe ein kompliziertes ( so wie eigentlich immer, und kompliziert natürlich subjektiv ) Effizienz-Problem.
Ich versuch gerade eine Liste mit Dateien welche eine bestimmte Datei-Endung haben,
sortiert nach ihrem Erstell-Datum mit der ältesten als erstes, auszugeben.
Also, Dateien, nur die die Bestimmte Datei-Endungen haben, Nach ihrem Erstell-Datum sortiert, mit der ältesten zuerst, in eine Datei ausgeben.
Und dabei die Dateien welche die Endung haben auch noch zählen.
Und das nur bei Dateien in EINEM bestimmten Ordner, ohne Unterordner.
Die Liste wird dann weiterverarbeitet, mit einem kompliziert aussehenden ( objektiv ) Namens-Datums-Gebungs-Dings-Sortierungs-Algorithmus.
Das bisherige Gewirr an Befehlen das ich habe geht über das was man ineffizient nennen könnte hinaus.
Es sieht genau so aus;
!CR! ist ein Carriage Return Charakter
Es gibt noch keinen Mechanismus um die Dateien zu zählen, momentan werden ALLE gezählt, denn ich wollte das ganze nicht NOCH langsamer machen.
for /f "delims=" %%i in ('dir /b /a-d /tc /od') do set /a "FND=!FND!+1"&<nul set /P "=Files loaded: !FND!!CR!"&for /f "tokens=1-2" %%a in ('dir /tc "%%~i"^|findstr "%%~i"') do >>"%list%" echo %%a %%b %%i
findstr /i ".png .jpg .tif .jpeg .exif .gif .bmp" "%list%"> "%list2%"
>nul erase /F /Q "%list%"
hat jemand eine Idee wie man das schneller / besser / Effizienter machen könnte?
Die nachfolgende Verarbeitung sieht ( rein für Informations- und Verständnis-Zwecke ) in etwa so aus;
Die Liste enthält momentan DATUM ZEIT DATEI, weshalb ich den Dritten Token nehme.
:number füllt CUR nach vorne bis zu 4 Zeichen mit Nullen auf ( also z.b. CUR = 3 der return von number ist dann 0003 )
for /f "tokens=1-3* delims= " %%a in (%list2%) do (
set /a "CUR=!CUR!+1"
call :number
rename "%cd%\%%c" "!nam!_!num!.*"
)
schönen Abend noch
lg clragon
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 328041
Url: https://administrator.de/forum/datei-endungen-listen-und-sortierung-batch-328041.html
Ausgedruckt am: 05.05.2025 um 20:05 Uhr
5 Kommentare
Neuester Kommentar

So ein Aufwand für nüscht
PS:
Gruß
$cnt = 0
gci "c:\Daten\*" -Include *.png,*.jpg,*.tif,*.jpeg,*.exif,*.gif,*.bmp | sort LastWriteTime | %{rename-item $_.Fullname -NewName "$($_.Basename)_$($cnt.toString().padLeft(4,'0'))$($_.Extension)"; $cnt++}

Zitat von @130834:
Wenn ich nur wüsste was das ist....?
Der war gut Wenn ich nur wüsste was das ist....?