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 05.05.25, 14:15   #1
ET23
Anfänger
 
Registriert seit: Mar 2011
Beiträge: 10
Bedankt: 0
ET23 ist noch neu hier! | 0 Respekt Punkte
Standard Verzeichnis-/Unterverzeichnis-Generator die Zweite

Schafft es jemand, die bei mir ca.wöchentl., händische Zusammenräumaktion mittels einem BatchS***** zu vereinfachen ?
In einem Hauptordner fallen jeden Tag versch.Unterordner mit Dateien etc. an.
Wunsch: Batch/Programm sollte alle Ordner (samt Inhalt) entspr. des Entstehungsdatums in einem gemeinsamen Ordner verschieben dh.
alle Ordner, die z.B. am 19.04.2025 entstanden sind werden in den neuen Ordner "19.04.2025" verschoben etc..
Beim Verschieben sollte/muß aber das ersprechende Entstehungsdatum erhalten bleiben.

Bitte, kann mir ein Profi da behilflich sein & schafft jemand das ?
ET23

Geändert von ET23 (05.05.25 um 14:17 Uhr) Grund: Frage/Grund blöderwise vergessen
ET23 ist offline   Mit Zitat antworten
Ungelesen 05.05.25, 19:06   #2
Mr_Braun
abcdefgh
 
Benutzerbild von Mr_Braun
 
Registriert seit: Oct 2008
Ort: Ziegengehege
Beiträge: 2.650
Bedankt: 2.533
Mr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt PunkteMr_Braun leckt gerne myGully Deckel in der Kanalisation! | 3209609 Respekt Punkte
Standard

Das kriegt heutzutage jeder mit KI hin.

Zitat:
Ich möchte ein PowerShell-Skript.

In einem Hauptordner fallen jeden Tag versch.Unterordner mit Dateien etc. an.
Das Skript ollte alle Ordner (samt Inhalt) entsprechend des Entstehungsdatums in einem gemeinsamen Ordner verschieben. Das heißt alle Ordner, die z.B. am 19.04.2025 entstanden sind werden in den neuen Ordner "19.04.2025" verschoben etc..

Beim Verschieben muss das Entstehungsdatum erhalten bleiben.
Ergebnis:

Zitat:
# Pfad zum Hauptordner festlegen
$hauptordner = "C:\Pfad\zum\Hauptordner"

# Alle Unterordner im Hauptordner abrufen
$unterordner = Get-ChildItem -Path $hauptordner -Directory

# Jedes Unterverzeichnis verarbeiten
foreach ($ordner in $unterordner) {
# Entstehungsdatum des Ordners abrufen
$erstellungsdatum = $ordner.CreationTime

# Datumsformat wie gewünscht (TT.MM.YYYY)
$datumFormat = $erstellungsdatum.ToString("dd.MM.yyyy")

# Zielordnername erstellen
$zielordner = Join-Path -Path $hauptordner -ChildPath $datumFormat

# Prüfen, ob der Zielordner bereits existiert, wenn nicht, erstellen
if (-not (Test-Path -Path $zielordner)) {
New-Item -ItemType Directory -Path $zielordner -Force | Out-Null
}

# Ordner in den Zielordner verschieben
$zielPfad = Join-Path -Path $zielordner -ChildPath $ordner.Name
Move-Item -Path $ordner.FullName -Destination $zielPfad -Force

# Optionale Ausgabe
Write-Host "Ordner '$($ordner.Name)' wurde nach '$datumFormat' verschoben."
}

Write-Host "Operation abgeschlossen!"
Testen musst du es selber. Wenn es Fehler gibt, frag die Konserve.
Mr_Braun ist offline   Mit Zitat antworten
Folgendes Mitglied bedankte sich bei Mr_Braun:
ET23 (10.05.25)
Ungelesen 10.05.25, 07:48   #3
ET23
Anfänger
 
Registriert seit: Mar 2011
Beiträge: 10
Bedankt: 0
ET23 ist noch neu hier! | 0 Respekt Punkte
Standard

hast´n Nachricht....
ET23 ist offline   Mit Zitat antworten
Ungelesen Gestern, 12:37   #4
Klappstulle_mit_Käse
Profi
 
Registriert seit: Apr 2021
Beiträge: 1.847
Bedankt: 2.261
Klappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 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
Klappstulle_mit_Käse ist offline   Mit Zitat antworten
Ungelesen Gestern, 17:04   #5
Klappstulle_mit_Käse
Profi
 
Registriert seit: Apr 2021
Beiträge: 1.847
Bedankt: 2.261
Klappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt PunkteKlappstulle_mit_Käse leckt gerne myGully Deckel in der Kanalisation! | 580349525 Respekt Punkte
Standard

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
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 10:22 Uhr.


Sitemap

().