hasselnuss31

Batch Datei: In einer bestimmten Ordnertiefe Befehl ausführen

Hallo,
ich habe eine Batch-Programmierung erstellt, die Bilder nach Datum in neue Unterordner einsortiert. Nun will ich, dass das Programm automatisch in eine bestimmte Ordnertiefe geht und die Bilder automatisch in neue Unterordner nach Datum einsortiert. Die Schwierigkeit hierbei: Es soll in mehrere Pfade gleichzeitig geguckt werden. Beispielpfade: C:\Bilder\Urlaub\Jana, C:\Bilder\Urlaub\Marie, C:\Bilder\Urlaub\Chris, .... Die Ordnertiefe ist bei allen aber immer gleich.

Es geht mir hauptsächlich drum, wie ich dem Programm sage, dass es in diese bestimmte Ordnertiefe nur gucken soll. Ich hoffe ihr könnte mir dabei weiterhelfen und gegebenenfalls einen Code zur Verfügung stellen.

Danke!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 932989827

Url: https://administrator.de/forum/batch-datei-in-einer-bestimmten-ordnertiefe-befehl-ausfuehren-932989827.html

Ausgedruckt am: 12.05.2025 um 04:05 Uhr

148934
148934 07.07.2021 aktualisiert um 13:35:43 Uhr
Goto Top
Es geht mir hauptsächlich drum, wie ich dem Programm sage, dass es in diese bestimmte Ordnertiefe nur gucken soll.
@echo off
for /d %%a in ("C:\Bilder\Urlaub\*") do (  
    echo Do something with folder "%%a"  
)
?
Hasselnuss31
Hasselnuss31 07.07.2021 um 13:35:17 Uhr
Goto Top
ich probiere es mal
Hasselnuss31
Hasselnuss31 07.07.2021 um 13:38:06 Uhr
Goto Top
mein aktueller code schaut so aus

::---------snipp SortierMirInTagesMonatsJahrOrdner.bat ----
rem @echo off & setlocal
::---ab hier anpassen
Set "StartDirFiles=C:\Urlaub\Bilder\*.*"
rem Set "ZielDirRoot=C:\Urlaub\Bilder\Jana"
::---bis hier anpassen
:: Monatsordner anlegen, wenn nötig und dann die Dateien MOVEn...


for /d %%d in (%StartDirFiles%) do ( echo %%d
echo %%d
Set SubDirFiles=%%d
Echo %SubDirFiles

for /d %%s in (%SubDirFiles%) do ( echo %%s
Set QuellDirFiles=%%s
Set ZielDirRoot=%%s
echo %%ZielDirRoot

for %%i in (%QuellDirFiles%) do for /f "tokens=1-3 delims=. " %%a in ("%%~ti") do (
if not exist "%ZielDirRoot%\%%c_%%b_%%a" md "%ZielDirRoot%\%%c_%%b_%%a"
@Move "%%~fi" "%ZielDirRoot%\%%c_%%b_%%a\"
)
)
)
148934
Lösung 148934 07.07.2021, aktualisiert am 08.07.2021 um 08:09:27 Uhr
Goto Top
mein aktueller code schaut so aus
Formatierungen in den Beiträgen

@echo off &setlocal
set "root=C:\Bilder\Urlaub"  
for /d %%a in ("%root%\*") do (  
	for %%b in ("%%a\*.*") do for /f "tokens=1-3 delims=. " %%c in ("%%~tb") do (  
		if not exist "%%a\%%e_%%d_%%c" md "%%a\%%e_%%d_%%c"  
		Move "%%b" "%%a\%%e_%%d_%%c\"  
	)
)
Lektüre
Tutorial zur FOR-Schleife
Hasselnuss31
Hasselnuss31 07.07.2021 um 16:09:54 Uhr
Goto Top
danke, hat funktioniert. Geht dieser Code dann immer in die selbe anzahl an der Ordnertiefe?
148934
148934 07.07.2021 aktualisiert um 17:19:45 Uhr
Goto Top
Zitat von @vgsh20:

danke, hat funktioniert. Geht dieser Code dann immer in die selbe anzahl an der Ordnertiefe?

Sicher, for /d durchsucht nur eine Ordnerebene.
Hasselnuss31
Hasselnuss31 08.07.2021 um 08:02:44 Uhr
Goto Top
Jetzt habe ich aber das Problem, dass die Sortierung nicht funktioniert wie es soll. Es sollen immer Unterordner für die jeweiligen Aufnahmedaten gemacht werden und die Bilder darein verschoben werden.... Er erstellt mir aber einen Ordner mit dem Datum vom heutigen Tag und verschiebt alle Bilder da rein, obwohl die alle unterschiedliche Aufnahmedaten haben....
148934
148934 08.07.2021 aktualisiert um 08:15:06 Uhr
Goto Top
Uups kl. Tippfehler, ist o. korr.
Hätte man eigentlich auch selbst sehen können, aber hier reicht's ja anscheinend nur zu copy n paste statt sich das ganze mal selbst zu Gemüte zu führen ...🤔

me.quit
Hasselnuss31
Hasselnuss31 08.07.2021 um 09:31:41 Uhr
Goto Top
Ich habe zum Pfad dann noch eine Frage: Wie mache ich das wenn ich noch eine variable Ebene mehr habe. Beispielweise:
C:\Urlaub\Bilder\Jana\Spanien , C:\Urlaub\Bilder\Jana\Polen, C:\Urlaub\Bilder\Max\Spanien; usw.
Also das die letzten beiden ebenen Variable sind.
148934
148934 08.07.2021 um 11:45:38 Uhr
Goto Top
Zitat von @vgsh20:

Ich habe zum Pfad dann noch eine Frage: Wie mache ich das wenn ich noch eine variable Ebene mehr habe. Beispielweise:
C:\Urlaub\Bilder\Jana\Spanien , C:\Urlaub\Bilder\Jana\Polen, C:\Urlaub\Bilder\Max\Spanien; usw.
Also das die letzten beiden ebenen Variable sind.

Siehe dein nächster Post, Mr. ungeduldig.