Nemusíte volat mkdir vícekrát, protože New-Item
může mít řadu cest. Například:
mkdir $(1..9 | %{"ch$_"})
@DavidPostill vysvětlil většinu pojmů ve své odpovědi. To také využívá interpolaci řetězců namísto provádění explicitního zřetězení. Navíc %
místo ForEach-Object
se používá zkratka , ale má stejný význam.
Bohužel se nezdá, že by existoval snadný způsob, jak interpolovat řetězec do pole řetězců jako v bash.
Jaká je syntaxe pro vytvoření více adresářů pomocí PowerShell
Použijte následující příkaz:
0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) }
Jak to funguje:
0..9
operátor rozsahu..
generuje posloupnost čísel 0, 1, ... 9- čísla jsou zřetězena
|
na další příkaz foreach
smyčky (postupně přes každé číslo){ ... }
je blok skriptuNew-Item -ItemType directory -Name $("ch" + $_)
vytvoří adresáře$_
je automatická proměnná, která představuje aktuální objekt v potrubí (číslo)
Příklad:
> 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