Jeden n-ten Ordner löschen
Hallo,
ich bin leider auf der CMD ein kompletter Döddel und hoffe irgendjemand kann mir bei meinem Problem weiterhelfen:
Ich habe eine Kamera die Bilder auf einen Server speichert, jetzt will ich daraus einen Film zusammenschneiden und brauchen dazu nur jedes 30te Bild...
Die Strucktur ist wie folgt:
Ich habe z.B. 145 Ordner(steigt mit jedem Tag) Name ist 000-X in diesen Ordner gibt es wieder Unterordner 001-999 in denen die Bilder gespeichert sind. Ich würde nun gerne nur jeden 30ten Unterordner behalten. Also das nur mehr die Ordner 001, 031, 061, 091, 121 etc. vorhanden sind
zwei ähnliche Foreneinträge habe ich zu dem Thema schon gefunden nur leider bin ich zu blöd diese auf mein Problem zu übertragen:
Jede zweite Datei löschen via Batch
https://www.wer-weiss-was.de/t/windows-explorer-jede-2-datei-markieren/6 ...
Dieser Befehl würde glaube ich prinzipiell funktionieren nur leider geht der nur für jpg Dateien...
Hoffe es findet sie ein gnädige Seele dir mir aus der Patsche helfen kann!
mfg Dominik
ich bin leider auf der CMD ein kompletter Döddel und hoffe irgendjemand kann mir bei meinem Problem weiterhelfen:
Ich habe eine Kamera die Bilder auf einen Server speichert, jetzt will ich daraus einen Film zusammenschneiden und brauchen dazu nur jedes 30te Bild...
Die Strucktur ist wie folgt:
Ich habe z.B. 145 Ordner(steigt mit jedem Tag) Name ist 000-X in diesen Ordner gibt es wieder Unterordner 001-999 in denen die Bilder gespeichert sind. Ich würde nun gerne nur jeden 30ten Unterordner behalten. Also das nur mehr die Ordner 001, 031, 061, 091, 121 etc. vorhanden sind
zwei ähnliche Foreneinträge habe ich zu dem Thema schon gefunden nur leider bin ich zu blöd diese auf mein Problem zu übertragen:
Jede zweite Datei löschen via Batch
https://www.wer-weiss-was.de/t/windows-explorer-jede-2-datei-markieren/6 ...
Dieser Befehl würde glaube ich prinzipiell funktionieren nur leider geht der nur für jpg Dateien...
for /f "delims=: tokens=1*" %i in ('dir *.jpg /a-D /o-d /b^|findstr /n $') do @(set /a "x=%i % 2")>nul & @if !x!==1 del "%j"
Hoffe es findet sie ein gnädige Seele dir mir aus der Patsche helfen kann!
mfg Dominik
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 382105
Url: https://administrator.de/forum/jeden-n-ten-ordner-loeschen-382105.html
Ausgedruckt am: 09.05.2025 um 19:05 Uhr
20 Kommentare
Neuester Kommentar
Das ist irgend ein Befehl denn ich gefunden habe; Ich dachte
deklariet das er alle jpg Dateien unbestimmt von deren Namen auswählt?!
Ja. JPG-Dateien mit beliebigen Namen.dir *.jpg
Wenn Du PNG-Dateien behandeln willst dann als *.png.
Und BMP eben *.bmp
Und alle dann *.*
Du schriebst doch ..?
funktionieren nur leider geht der nur für jpg Dateien..
Moin,
mit der Powershell:
Das geht nur dann ohne Fehlermeldung, wenn alle Ordner, die im Verzeichnis sind, Deinem Muster entsprechen. Achtung! Das löscht gnadenlos alles, was gefunden wird. -recurse löscht alle Dateien und Unterordner. -force sorgt dafür, dass auch versteckte Dateien u. ä. gelöscht werden.
<edit>Die Doppelpfeile am Anfang der Zeile kommen dann, wenn Du das auf der Powershellkonsole eingibst und die Enter-Taste drückst. Die PS merkt, dass da noch was kommen muss, und zeigt so an, dass sie die vorherige Zeile erst abarbeitet, wenn die Eingabe beendet wurde. In der letzten Zeile musst Du dann zweimal Enter drücken.</edit>
hth
Erik
mit der Powershell:
get-childitem | %{$number = $_.name.split("-")
>> if(($number-1)%30 -ne 0) {
>> remove-item $_.name -recurse -force}}
>>
Das geht nur dann ohne Fehlermeldung, wenn alle Ordner, die im Verzeichnis sind, Deinem Muster entsprechen. Achtung! Das löscht gnadenlos alles, was gefunden wird. -recurse löscht alle Dateien und Unterordner. -force sorgt dafür, dass auch versteckte Dateien u. ä. gelöscht werden.
<edit>Die Doppelpfeile am Anfang der Zeile kommen dann, wenn Du das auf der Powershellkonsole eingibst und die Enter-Taste drückst. Die PS merkt, dass da noch was kommen muss, und zeigt so an, dass sie die vorherige Zeile erst abarbeitet, wenn die Eingabe beendet wurde. In der letzten Zeile musst Du dann zweimal Enter drücken.</edit>
hth
Erik
Moin,
wie schon weiter oben gesagt:
Das heißt, dort, wo die Doppelpfeile stehen, schreibst Du NICHT die Doppelpfeile, sondern drückst ENTER. Am Ende musst Du ZWEIMAL Enter drücken.
hth
Erik
wie schon weiter oben gesagt:
Die Doppelpfeile am Anfang der Zeile kommen dann, wenn Du das auf der Powershellkonsole eingibst und die Enter-Taste drückst. Die PS merkt, dass da noch was kommen muss, und zeigt so an, dass sie die vorherige Zeile erst abarbeitet, wenn die Eingabe beendet wurde. In der letzten Zeile musst Du dann zweimal Enter drücken.
Das heißt, dort, wo die Doppelpfeile stehen, schreibst Du NICHT die Doppelpfeile, sondern drückst ENTER. Am Ende musst Du ZWEIMAL Enter drücken.
hth
Erik
Weil in dem Fall dann deine Powershell zu alt ist (< 3.0) , und die den Parameter -Directory noch nicht kennt, deswegen
! Lässt sich aber leicht auch für eine alte Powershell kompatibel machen:
gci 'D:\Ordner\Cam1\Cam_IP\*\*' | ?{$_.PSIsContainer -and ((([int]$_.Basename)-1) % 30 -ne 0)} | remove-item -Recurse -Force -verbose