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

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

Member: Franz-Josef-II
Solution Franz-Josef-II Jan 21, 2021 at 10:21:31 (UTC)
Goto Top
Mitglied: 147323
Solution 147323 Jan 21, 2021 updated at 10:28:38 (UTC)
Goto Top
$ordner = 'G:\Test'  
gc 'D:\datei.txt' | %{md "$ordner\$_" -Force -Verbose}  
Member: arcmos
arcmos Jan 21, 2021 at 10:43:46 (UTC)
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 Jan 21, 2021 updated at 11:28:38 (UTC)
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  
    }
}
Member: arcmos
arcmos Jan 25, 2021 at 10:30:43 (UTC)
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 Jan 25, 2021 updated at 10:52:51 (UTC)
Goto Top
Klar, einfach mit nem Pattern nen Regex Replace machen
$ordner = 'G:\Test'  
gc 'D:\datei.txt' | %{md "$ordner\$($_ -replace '[^\w]')" -Force -Verbose}  
Member: arcmos
arcmos Mar 04, 2021 at 16:44:44 (UTC)
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.