arcmos
Goto Top

Mehrere Ordner erstellen aus txt file

Hallo

Ich möchte mit einem Skript mehrere Ordner erstellen lassen. Die Namen der Ordner sollen aus der txt Datei ausgelesen werden. Speicherort usw. möchte ich im Skript definieren. GUI ist nicht nötig.


Beispiel
G:\Test
Namen.txt
  • Name1
  • Name2
  • Name3
Skript ausführen

Ziel
Im Ordner G:\Test werden die Ordner Name1, Name2, Name3 usw. erstellt.

G:\Test\Name1
G:\Test\Name2
G:\Test\Name3

Vorerst ohne Unterordner.

Könnt ihr mir ein etwas Starthilfe und paar Tipps dazu geben? Es sollte auf Powershell basieren.

Content-Key: 643011

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

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: Franz-Josef-II
Lösung Franz-Josef-II 21.01.2021 um 11:21:31 Uhr
Goto Top
Mitglied: 147323
Lösung 147323 21.01.2021 aktualisiert um 11:28:38 Uhr
Goto Top
$ordner = 'G:\Test'  
gc 'D:\datei.txt' | %{md "$ordner\$_" -Force -Verbose}  
Mitglied: arcmos
arcmos 21.01.2021 um 11:43:46 Uhr
Goto Top
Grande!

Einige Namen in der Liste haben Sonderzeichen wie bespielsweise ein ®.

Aus Namexyz® wird Namexyz®

Kann ich die Formatierung mit möglichst wenig Zeilen Code definieren? Erlaubte Sonderzeichen für Ordner
Mitglied: 147323
147323 21.01.2021 aktualisiert um 12:28:38 Uhr
Goto Top
Zitat von @arcmos:
Kann ich die Formatierung mit möglichst wenig Zeilen Code definieren? Erlaubte Sonderzeichen für Ordner
Regex ist dein Freund ...
$ordner = 'G:\Test'  
$validpattern = '^[\w\©\®]+$'  
gc 'D:\datei.txt' | %{  
    if ($_ -match $validpattern){
       md "$ordner\$_" -Force -Verbose  
    }else{
       write-error -Message "Der Ordnername '$_' enthält vom Skript nicht zugelassene Zeichen!" -Category InvalidArgument  
    }
}
Mitglied: arcmos
arcmos 25.01.2021 um 11:30:43 Uhr
Goto Top
Nice! Danke vielmals!!

Bin allerdings zum Schluss gekommen, dass die Idee mit den Sonderzeichen keine gute Idee ist. Je nach Programm können Zeichen, welche unter Windows Explorer zwar erlaubt sind, in anderen Programmen Probleme verursachen.

Daher suche ich eine Möglichkeit Sonderzeichen zu ignorieren. Also aus Namexyz® soll automatisch Namexyz werden.

Kann ich validpattern mit einem ignore austauschen?
Mitglied: 147323
147323 25.01.2021 aktualisiert um 11:52:51 Uhr
Goto Top
Klar, einfach mit nem Pattern nen Regex Replace machen
$ordner = 'G:\Test'  
gc 'D:\datei.txt' | %{md "$ordner\$($_ -replace '[^\w]')" -Force -Verbose}  
Mitglied: arcmos
arcmos 04.03.2021 um 17:44:44 Uhr
Goto Top
Das Ø Zeichen ist im Explorer zulässig. In der txt ist das auch korrekt. Bei den Ordnern wird aus Ø aber Ø.

Ich habe überall die Deutsche Version, also keine unterschiedlichen Sprachversionen.

Warum passiert das?

Passiert mit PowerShell ISE.