myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Verzeichnis-/Unterverzeichnis-Generator die Zweite

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 20.05.25, 17:04   #1
Klappstulle_mit_Käse
Profi
 
Registriert seit: Apr 2021
Beiträge: 1.873
Bedankt: 2.306
Klappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt Punkte
Standard

So wird das Skript Probleme machen, wenn bereits Ordner mit Datum vorhanden sind.

Entweder:
a) Prüfen ob Ordner bereits ein Datum enthält. Wenn ja, dann nicht verschieben.
oder
b) Haupt- und Zielordner müssen unterschiedlich sein

PS: Als Datumsformat empfiehlt sich wegen der Sortierung meist: yyyy-MM-dd

Die Batch Datei inklusive Ignorieren bereits vorhandener Datumsordner könnte so aussehen:

Code:
@echo off
setlocal enabledelayedexpansion

REM Hauptordner ist D:\Downloads
set "HAUPTORDNER=D:\Downloads"

echo Sortiere Unterordner nach Erstellungsdatum...
echo.

REM Schleife durch alle Unterordner im Hauptordner
for /d %%D in ("%HAUPTORDNER%\*") do (
    REM Überprüfe, ob es sich nicht um einen Datumsordner handelt (Format YYYY-MM-DD)
    echo "%%~nxD" | findstr /r "^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$" > nul
    if errorlevel 1 (
        REM Ermittle das Erstellungsdatum des Ordners
        for /f "tokens=1-5 delims=.: " %%a in ('dir /tc "%%D" ^| findstr /r /c:"^[0-9]"') do (
            if "%%e"=="%%D" (
                set "DAY=%%a"
                set "MONTH=%%b"
                set "YEAR=%%c"
                
                REM Formatiere Tag und Monat mit führender Null falls nötig
                if !DAY! LSS 10 set "DAY=0!DAY!"
                if !MONTH! LSS 10 set "MONTH=0!MONTH!"
                
                REM Erstelle den Datumsordner (YYYY-MM-DD)
                set "DATUMSORDNER=!YEAR!-!MONTH!-!DAY!"
                
                REM Erstelle den Datumsordner, falls er nicht existiert
                if not exist "%HAUPTORDNER%\!DATUMSORDNER!" (
                    mkdir "%HAUPTORDNER%\!DATUMSORDNER!"
                    echo Datumsordner !DATUMSORDNER! erstellt.
                )
                
                REM Verschiebe den Unterordner in den entsprechenden Datumsordner
                echo Verschiebe "%%~nxD" nach "!DATUMSORDNER!"...
                
                REM Verwende ROBOCOPY, um das Erstellungsdatum zu erhalten und dann das Original zu löschen
                robocopy "%%D" "%HAUPTORDNER%\!DATUMSORDNER!\%%~nxD" /E /DCOPY:T /COPY:DT /MOVE
                
                REM Entferne leere Quellordner, falls ROBOCOPY sie nicht entfernt hat
                if exist "%%D" rd /s /q "%%D" 2>nul
            )
        )
    )
)

echo.
echo Fertig! Alle Unterordner wurden nach Erstellungsdatum sortiert.
pause
Klappstulle_mit_Käse ist offline   Mit Zitat antworten
Ungelesen 23.05.25, 08:56   #2
ET23
Anfänger
 
Registriert seit: Mar 2011
Beiträge: 13
Bedankt: 0
ET23 ist noch neu hier! | 0 Respekt Punkte
Standard

Hallo Klappstulle, besten Dank für die BATCH. Aber entweder bin ich zu blöd oder ... - es tut sich bei mir nichts.
Ich habe Deinen Text als *.bat abgespeichert (das Hauptordner-Verz. dementsprechen abgeändert) & die bat-Date in den Ordner der Dateien kopiert & dort gestartet.....nichts
ET23 ist offline   Mit Zitat antworten
Ungelesen 24.05.25, 09:03   #3
eitch100
Agnostiker
 
Benutzerbild von eitch100
 
Registriert seit: Dec 2009
Beiträge: 4.431
Bedankt: 4.845
eitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkte
Standard

Ich habe von der Syntax von Batch-Dateien jetzt wenig Ahnung, aber aus der Erfahrung von anderen "Sprachen" scheinen mir die Anführungszeichen in den "set" Befehlen zweifelhaft. Z.B.

set "HAUPTORDNER=D:\Downloads"

zu

set HAUPTORDNER="D:\Downloads"
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt

Geändert von eitch100 (24.05.25 um 09:16 Uhr)
eitch100 ist offline   Mit Zitat antworten
Ungelesen 24.05.25, 13:17   #4
Klappstulle_mit_Käse
Profi
 
Registriert seit: Apr 2021
Beiträge: 1.873
Bedankt: 2.306
Klappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 581445822 Respekt Punkte
Standard

Zitat:
Zitat von eitch100 Beitrag anzeigen
scheinen mir die Anführungszeichen in den "set" Befehlen zweifelhaft
Das ist korrekt so. Kannst du in ner Eingabeaufforderung testen. mit "set" werden die Werte ordnungsgemäß abgezeigt.

Das garnichts angezeigt wird ist unwahrscheinlich. Irgendwas sollte ausgegeben werden. (Sind ja Echo-Zeilen drin)

Die Batch-Datei kann man von überall aus starten, da ja der Pfad angegeben wird.
Klappstulle_mit_Käse ist offline   Mit Zitat antworten
Ungelesen 24.05.25, 14:51   #5
eitch100
Agnostiker
 
Benutzerbild von eitch100
 
Registriert seit: Dec 2009
Beiträge: 4.431
Bedankt: 4.845
eitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkte
Standard

Zitat:
Zitat von Klappstulle_mit_Käse Beitrag anzeigen
Das ist korrekt so. Kannst du in ner Eingabeaufforderung testen. mit "set" werden die Werte ordnungsgemäß abgezeigt.
Oh, ja, ich habe im anderen Srìpt geschaut und da war es auch schon so. Das hätte mir auch früher einfallen können. Letztlich ein klassischer Fall von: Einfach mal meine Klappe halten, wenn ich keine Ahnung habe...

Zum Problem: Das wird an den Ordnernamen liegen...
@ET23
Wie GENAU heißen denn deine Ordner, wenn sie erstellt wurden? Sie können ja nicht denselben Namen haben, wenn mehrere am Tag entstehen, wie du im Startpost schreibst. Oder möchtest du sie anhand des "Erstellungsdatums" (Also Ordneransicht - Details - Datum bzw. Rechtsklick auf Ordner - Eigenschaften - Erstellt) verschieben? Ob und wie das geht, geht direkt an Klappstulle.

Und kommt von der Batch wirklich gar nichts? Wie Klappstulle schon sagte, sollten die "echos" wenigstens angezeigt werden...
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt

Geändert von eitch100 (24.05.25 um 15:06 Uhr)
eitch100 ist offline   Mit Zitat antworten
Ungelesen 25.05.25, 08:06   #6
ET23
Anfänger
 
Registriert seit: Mar 2011
Beiträge: 13
Bedankt: 0
ET23 ist noch neu hier! | 0 Respekt Punkte
Standard

Guten Morgen,
nach Start der bat erscheint bei mir
1.)"Sortiere Unterordner nach......." und
2.) "Fertig Alle Unterordner........"
aber im Hauptordner, wo sich ja die aufzuteilenden Dateien befinden passiert nichts ?

Ich bräuchte/hätte gerne, daß alle im Hauptordner angefallenen Dateien od. auch manchmal Verzeichnisse nach ihrem Entstehungs-/Erschaffungs-Datum in dem jew.Unterorden mit dem Namen des Datums) einsortiert/verschoben werden.
Wenn das passiert ist, verschiebe ich dann die "Datumsordner" woanders hin und der Hauptorden bleibt wieder frei für neue Dateien bzw.Verzeichnisse.

Schönes Wochenende Euch allen & vielen, vielen Dank für Eure Unterstützung!!
Leider fehlt mir auf dem Gebiet noch einiges...
ET23
ET23 ist offline   Mit Zitat antworten
Ungelesen 25.05.25, 09:39   #7
eitch100
Agnostiker
 
Benutzerbild von eitch100
 
Registriert seit: Dec 2009
Beiträge: 4.431
Bedankt: 4.845
eitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkteeitch100 leckt gerne myGully Deckel in der Kanalisation! | 1147872512 Respekt Punkte
Standard

Ja, der Code scheint da nicht zu funktionieren. Habe es auch gestestet... Außderdem scheint er nur die Ordner und nicht auch die Dateien zu prüfen.
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt

Geändert von eitch100 (25.05.25 um 09:50 Uhr)
eitch100 ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr.


Sitemap

().