Non è necessario invocare mkdir più volte, perché New-Item
può prendere una serie di percorsi. Ad esempio:
mkdir $(1..9 | %{"ch$_"})
@DavidPostill ha spiegato la maggior parte dei concetti nella sua risposta. Questo sfrutta anche l'interpolazione delle stringhe invece di eseguire una concatenazione esplicita. Inoltre, il %
viene usata la scorciatoia al posto di ForEach-Object
, ma ha lo stesso significato.
Sfortunatamente, non sembra esserci un modo semplice per interpolare una stringa in un array di stringhe come in bash.
Qual è la sintassi per creare più directory con PowerShell
Usa il seguente comando:
0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) }
Come funziona:
0..9
l'operatore di intervallo..
genera la sequenza di numeri 0, 1, ... 9- i numeri sono in pipeline
|
al comando successivo foreach
loop (attraverso ogni numero a turno){ ... }
è un blocco di scriptNew-Item -ItemType directory -Name $("ch" + $_)
crea le directory$_
è una variabile automatica che rappresenta l'oggetto corrente nella pipeline (il numero)
Esempio:
> 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