Kopiere nur jedes x-te Bild oder Datei
Hallo zusammen,
ich habe ein Problem, ich habe aus versehen statt alle 60 min, alle 5 min ein Bild erzeugt.
Nun würde ich gerne nur jedes 12 te Bild kopieren und so wieder nur ein Bild pro Stunde haben.
Der KopierBefehl ist mir natürlich bekannt aber ich habe leider keine Ahnung wie ich Bild 2-11 vom Kopieren auslasse.
Danke!
lg mc-dy
ich habe ein Problem, ich habe aus versehen statt alle 60 min, alle 5 min ein Bild erzeugt.
Nun würde ich gerne nur jedes 12 te Bild kopieren und so wieder nur ein Bild pro Stunde haben.
Der KopierBefehl ist mir natürlich bekannt aber ich habe leider keine Ahnung wie ich Bild 2-11 vom Kopieren auslasse.
Danke!
lg mc-dy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174758
Url: https://administrator.de/forum/kopiere-nur-jedes-x-te-bild-oder-datei-174758.html
Ausgedruckt am: 18.04.2025 um 05:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo mc-doubleyou!
Unterliegen die Dateinamen der Bilder eigentlich der Geheimhaltung?
Anyhow: Schematisch wird es in etwa auf:
hinauslaufen ...
Grüße
bastla
[Edit] "
Unterliegen die Dateinamen der Bilder eigentlich der Geheimhaltung?
Anyhow: Schematisch wird es in etwa auf:
@echo off & setlocal
set /a Auswahl=12
pushd "D:\Bilder"
for /f "tokens=1* delims=:" %%i in ('dir /b /a-d /on *.jpg^|findstr /n "^"') do call :ProcessFile %%i "%%j"
popd
goto :eof
:ProcessFile
set /a Modulo=%1 %% Auswahl
if %Modulo% neq 1 goto :eof
echo Kopiere %2
goto :eof
Grüße
bastla
[Edit] "
pushd
" / "popd
" und "/a-d
" ergänzt
Hallo mc-doubleyou!
Die Zeile 11 ist ja auch nur eine Demo - einen "
Kurze Erklärung:
Die "
Dort wird mit einer Modulo-Berechnung (= Ermittlung des Divisionsrests) eine Datei nur dann weiter verarbeitet, wenn dieser Divisionsrest genau 1 ist - demzufolge (beim verwendeten Teiler 12) die Dateien mit den Laufnummern 1, 13, 25, ...
Um mit einer bestimmten Datei zu beginnen, genügt es, von Hand vorweg alle älteren (bzw allgemein: in der Sortierung davor liegenden) Dateien zu entfernen.
Oben habe ich noch Kleinigkeiten angepasst, damit sicher nur Dateien (und keine Ordner) erfasst und der Quellpfad automatisch berücksichtigt werden.
"
Grüße
bastla
Die Zeile 11 ist ja auch nur eine Demo - einen "
copy
"-Befehl wirst Du hoffentlich selbst hinbekommen ...Kurze Erklärung:
Die "
for
"-Schleife erzeugt einfach eine geordnete (derzeit nach Name, da ich mal auf Verdacht eine vernünftige Namensgebung vorausgesetzt hatte, auf Wunsch aber auch nach Erstelldatum mit "/od /tc
") und nummerierte Liste der Dateien im angegebenen Ordner, wobei die Nummer als %1 und der Name als %2 im (für jede Datei) aufgerufenen Unterprogramm ":ProcessFille
" ankommt.Dort wird mit einer Modulo-Berechnung (= Ermittlung des Divisionsrests) eine Datei nur dann weiter verarbeitet, wenn dieser Divisionsrest genau 1 ist - demzufolge (beim verwendeten Teiler 12) die Dateien mit den Laufnummern 1, 13, 25, ...
Um mit einer bestimmten Datei zu beginnen, genügt es, von Hand vorweg alle älteren (bzw allgemein: in der Sortierung davor liegenden) Dateien zu entfernen.
Oben habe ich noch Kleinigkeiten angepasst, damit sicher nur Dateien (und keine Ordner) erfasst und der Quellpfad automatisch berücksichtigt werden.
"
setlocal
" habe ich zB hier kurz erklärt ...Grüße
bastla