uwehei
Goto Top

Verzeichnisstruktur anhand Dateinamen erstellen

Hallo,

ich brauche eure Hilfe bei folgendem Problem:

Ich haben mehrere Dateien auf einer Ebene, die eine Verzeichnisstruktur im Dateinamen haben. Z.B.

Auftragserteilung---Auftragserteilung_final.doc
Auftragserteilung---Entwürfe---Entwurf1.doc
Auftragserteilung---Entwürfe---Entwurf2.doc
Auftragserteilung---Entwürfe---Angang---Statistik.xlsx
Angebotseinholung---Anforderungen---Entwürfe---Entwurf1.xlsx
Angebotseinholung---Anforderungen---Entwürfe---Entwurf2.xlsx
Angebotseinholung---Anforderungen---Anf-Definition.xlsx
Angebotseinholung---Anbieter.csv

Die Verzeichnisstruktur hat also verschiedene Ebenen bzw. die Dateien liegen auf verschiedenen Ebenen, außerdem sind die Verzeichnisnamen unterschiedlich lang. Die Namen der Verzeichnisse sind durch --- (3 Bindestriche) getrennt, der Teil hinter dem letzten --- ist der eigentliche Dateiname. Leerzeichen sind in den Dateinamen nicht vorhanden.

Wie kann ich in Windows 10 mit Powershell oder cmd (oder etwas anderem) folgendes machen?
1. Die Verzeichnisstruktur soll angelegt werden
2. Die Dateien sollen in das richtige Verzeichnis verschoben werden
3. Die Verzeichnisstruktur soll aus dem Datennamen gelöscht werden (die Dateinamen sollen also nur noch den eigentlichen Dateinamen plus Dateinamenserweiterung beinhalten)
4. Umlaute und ß müssen beibehalten werden.

Ich habe in diesem Forum schon etwas gefunden, mit dem ein Verzeichnis mit einer Ebene anhand des Dateinamens angelegt werden kann. Mein Fall ist aber komplexer.

Schönen Gruß

Uwe

Content-Key: 665887

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

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

Member: TK1987
Solution TK1987 Apr 19, 2021 updated at 13:43:33 (UTC)
Goto Top
Moin Uwe,

$Files = Get-Childitem -File -Path "C:\Test\*" -include "*---*"  
Foreach ($File in $Files) {
  $NewFile = [io.fileinfo]($File.Fullname -Replace '---','\')  
  [void](md -force $NewFile.DirectoryName)
  Move-Item $File.Fullname $NewFile.Fullname
}

Gruß Thomas
Member: UweHei
UweHei Apr 19, 2021 at 13:54:20 (UTC)
Goto Top
Hallo Thomas,

danke für das Skript, so funktioniert es. Super!

Schönen Gruß

Uwe