sbroocks
Goto Top

Dateien in zu erstellende Unterordner sortieren per Batch Datei oder ähnlich?

Hallo zusammen,

kennt jemand zufällig ein Tool um Dateien automatisiert in zu erstellende Unterordner zu sortieren?

Wir haben diverse Dateien die (liegen alle im gleichen Ordner) den gleichen Namen aber verschiedene Endungen haben.

XY.pdf
XY.dwg
XY.stp
XY.XXX

Wir würden diese gerne per Batch Datei (oder ähnlich) sortieren und in zu erstellende Ordner sortieren.
Den Ordner sollte die Batch Datei mit erstellen, Name des Ordner´s dann XY.

Aus den obigen Dateien wird dann also der neue Ordner XY, in diesem sollen sich dann die Dateien XY.xxx befinden.

Hat dazu ggf. jemand eine Idee?

Content-ID: 449366

Url: https://administrator.de/forum/dateien-in-zu-erstellende-unterordner-sortieren-per-batch-datei-oder-aehnlich-449366.html

Ausgedruckt am: 25.12.2024 um 07:12 Uhr

139708
Lösung 139708 09.05.2019 aktualisiert um 12:54:10 Uhr
Goto Top
Moin.
Naja, das gibts ja nun schon wie Sand am Meer.
Musterlösungen: Dateien verschieben abhängig vom Teil des Dateinamens
Würde dir Powershell empfehlen, Batch ist ja nun langsam aber sicher nicht mehr zeitgemäß.
# Ordner mit den Dateien
$ordner = "C:\Quellordner"  
gci $ordner | ?{!$_.PSIsContainer} | group Basename | %{
    # Zielordner der Gruppe festlegen
    $ziel = "$ordner\$($_.Name)"  
    # wenn Zielordner noch nicht existiert erstelle ihn
    if(!(Test-path $ziel)){md $ziel | out-null}
    # Alle Dateien der Gruppe in den Zielordner verschieben
    move-item $_.Group -Destination $ziel -Force -verbose
}
Gruß wireguard
SBroocks
SBroocks 09.05.2019 aktualisiert um 13:33:54 Uhr
Goto Top
Vielen Dank...scheint zu klappen.

Wünsche noch einen angenehmen Tag.
SBroocks
SBroocks 10.05.2019 um 10:04:58 Uhr
Goto Top
Hallo,

ggf. auch ein Skript vorhanden um in den nun erstellen Ordnern jeweils 3 Unterordner zu erstellen?
Also in jedem Ordner den er in dem entsprechenden Pfad findet?

Die 3 Unterordner haben immer den gleichen Namen wie zum Beispiel: Zeichnung / Datenblatt / Programm oder ähnlich.

Wäre spitze,

Gruß,

SBroocks
139708
139708 10.05.2019 um 10:17:13 Uhr
Goto Top
Zeile 7 so umschreiben
 if(!(Test-path $ziel)){
    md $ziel | out-null
    md "$ziel\Zeichnung" | out-null  
    md "$ziel\Datenblatt" | out-null  
    md "$ziel\Programm" | out-null  
 }
SBroocks
SBroocks 13.05.2019 um 09:46:35 Uhr
Goto Top
Hallo Wireguard,

bei mir sieht das dann so aus:

  1. Ordner mit den Dateien
$ordner = "C:\test"
gci $ordner | ?{!$_.PSIsContainer} | group Basename | %{
          1. Zielordner der Gruppe festlegen
          $ziel = "$ordner\$($_.Name)"
                  1. wenn Zielordner noch nicht existiert erstelle ihn
                  if(!(Test-path $ziel)){
                  md $ziel | out-null
                  md "$ziel\Archiv" | out-null
                  md "$ziel\Fertigung" | out-null
                  md "$ziel\Konstruktion" | out-null
                  md "$ziel\Unterlagen" | out-null
                  }

                  Scheint aber nicht zu funktionieren, wo liegt hier mein Fehler?

                  Gruß,

                  SBroocks
139708
139708 13.05.2019 um 19:55:56 Uhr
Goto Top
Fehlt ja die Hälfte, kopiere es richtig dann funktioniert das auch!
SBroocks
SBroocks 14.05.2019 um 07:33:30 Uhr
Goto Top
Moin,

sorry, aber leider keine Funktion.
Der Order ist C:\test, in diesem befinden sich die per Skript bereits erstellten Ordner.
Nun sollen noch die Unterordner dazu, aber irgendwie stelle ich mich zu dusselig an. face-wink

  1. Ordner mit den Dateien
$ordner = "C:\test"
gci $ordner | ?{!$_.PSIsContainer} | group Basename | %{
          1. Zielordner der Gruppe festlegen
          $ziel = "$ordner\$($_.Name)"
                  1. wenn Zielordner noch nicht existiert erstelle ihn
                  if(!(Test-path $ziel)){
                  md $ziel | out-null
                  md "$ziel\Archiv" | out-null
                  md "$ziel\Fertigung" | out-null
                  md "$ziel\Konstruktion" | out-null
                  md "$ziel\Unterlagen" | out-null
                  }
                          1. Alle Dateien der Gruppe in den Zielordner verschieben
                          move-item $_.Group -Destination $ziel -Force -verbose
                          }

                          Wo liegt mein Fehler?

                          Vielen Dank und schönen Gruß,

                          SBroocks
139708
Lösung 139708 14.05.2019 aktualisiert um 13:15:59 Uhr
Goto Top
Der Order ist C:\test, in diesem befinden sich die per Skript bereits erstellten Ordner.
Nun sollen noch die Unterordner dazu, aber irgendwie stelle ich mich zu dusselig an.
Obige Anpassung war ja nur für die Anwendung mit vorhandenen Dateien gedacht weil die Ordner ja nur einmal erstellt werden wenn es entsprechende Dateien gibt, nicht nachträglich! Also logisch wenn man sich den Code zumindest mal ansehen würde.

Nachträglich auf die Ordnerstruktur angewendet geht das so
$ordner = "C:\test"  
gci $ordner | ?{$_.PSIsContainer} | %{
    md "$($_.Fullname)\Archiv" -Force | out-null  
    md "$($_.Fullname)\Fertigung" -Force | out-null  
    md "$($_.Fullname)\Konstruktion" -Force | out-null  
    md "$($_.Fullname)\Unterlagen" -Force | out-null  
 }
SBroocks
SBroocks 14.05.2019 um 13:44:17 Uhr
Goto Top
Super, danke.
Bin da leider nicht so bewandert...Danke

Gruß,

SBroocks