hasselnuss31
Goto Top

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!

Content-Key: 932989827

Url: https://administrator.de/contentid/932989827

Printed on: April 23, 2024 at 16:04 o'clock

Mitglied: 148934
148934 Jul 07, 2021 updated at 11:35:43 (UTC)
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"  
)
?
Member: Hasselnuss31
Hasselnuss31 Jul 07, 2021 at 11:35:17 (UTC)
Goto Top
ich probiere es mal
Member: Hasselnuss31
Hasselnuss31 Jul 07, 2021 at 11:38:06 (UTC)
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\"
)
)
)
Mitglied: 148934
Solution 148934 Jul 07, 2021, updated at Jul 08, 2021 at 06:09:27 (UTC)
Goto Top
mein aktueller code schaut so aus
Formatting instructions in the posts

@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
Member: Hasselnuss31
Hasselnuss31 Jul 07, 2021 at 14:09:54 (UTC)
Goto Top
danke, hat funktioniert. Geht dieser Code dann immer in die selbe anzahl an der Ordnertiefe?
Mitglied: 148934
148934 Jul 07, 2021 updated at 15:19:45 (UTC)
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.
Member: Hasselnuss31
Hasselnuss31 Jul 08, 2021 at 06:02:44 (UTC)
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....
Mitglied: 148934
148934 Jul 08, 2021 updated at 06:15:06 (UTC)
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
Member: Hasselnuss31
Hasselnuss31 Jul 08, 2021 at 07:31:41 (UTC)
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.
Mitglied: 148934
148934 Jul 08, 2021 at 09:45:38 (UTC)
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.