Sie müssen mkdir nicht mehrmals aufrufen, da New-Item
kann eine Reihe von Wegen nehmen. Zum Beispiel:
mkdir $(1..9 | %{"ch$_"})
@DavidPostill hat die meisten Konzepte in seiner Antwort erklärt. Dies nutzt auch die Zeichenfolgeninterpolation aus, anstatt eine explizite Verkettung durchzuführen. Zusätzlich die %
anstelle von ForEach-Object
wird die Kurzschrift verwendet , hat aber dieselbe Bedeutung.
Leider scheint es keine einfache Möglichkeit zu geben, einen String wie in Bash in ein Array von Strings zu interpolieren.
Wie lautet die Syntax zum Erstellen mehrerer Verzeichnisse mit PowerShell
Verwenden Sie den folgenden Befehl:
0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) }
So funktioniert es:
0..9
den Bereichsoperator..
erzeugt die Zahlenfolge 0, 1, ... 9- die Nummern werden gepipelinet
|
zum nächsten Befehl foreach
Schleifen (durch jede Zahl der Reihe nach){ ... }
ist ein SkriptblockNew-Item -ItemType directory -Name $("ch" + $_)
erstellt die Verzeichnisse$_
ist eine automatische Variable, die das aktuelle Objekt in der Pipeline darstellt (die Zahl)
Beispiel:
> 0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) }
Directory: F:\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 25/09/2016 14:57 ch0
d----- 25/09/2016 14:57 ch1
d----- 25/09/2016 14:57 ch2
d----- 25/09/2016 14:57 ch3
d----- 25/09/2016 14:57 ch4
d----- 25/09/2016 14:57 ch5
d----- 25/09/2016 14:57 ch6
d----- 25/09/2016 14:57 ch7
d----- 25/09/2016 14:57 ch8
d----- 25/09/2016 14:57 ch9