130834
Jan 31, 2017, updated at 23:10:14 (UTC)
1649
5
0
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 328041
Url: https://administrator.de/contentid/328041
Printed on: April 23, 2024 at 14:04 o'clock
5 Comments
Latest comment
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....?