回答:
次のコマンドを使用します。
0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) }
使い方:
0..9
範囲演算子は ..
、... 9数字0、1のシーケンスを生成します|
れますforeach
ループ(各番号を順番に){ ... }
あるスクリプトブロックNew-Item -ItemType directory -Name $("ch" + $_)
ディレクトリを作成します$_
ある自動変数パイプライン内の現在のオブジェクト(番号)を表します例:
> 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
1..9 | % $_{ mv ch$_*.* ch$_ }
:^ D
git add
、何が返されるかを確認する必要があります$_
-foreachの内部は最後のパイプラインアイテムの個々の配列エントリのみであることに注意しcommit
てください(つまり、この例のステップは生の数値を取得しないため、ch
再度追加することはおそらく間違っています) )。また、あなたの例では、すべての追加が完了した後にのみコミットが実行されます(つまり、最初のコミットがすべてを取得することを意味します...)または、;
単一のforeachステップ内で複数のステートメント(で区切られた)を使用することもできます。
New-Item
パスの配列を取ることができるため、mkdirを複数回呼び出す必要はありません。例えば:
mkdir $(1..9 | %{"ch$_"})
@DavidPostillは、彼の答えで概念のほとんどを説明しました。これは、明示的な連結を実行する代わりに、文字列補間を利用します。さらに、の%
代わりに省略形が使用されますForEach-Object
が、同じ意味があります。
残念ながら、bashのように文字列を文字列の配列に補間する簡単な方法はないようです。
md(0..9|%{"ch$_"})
md
は、mkdir
PowerShell関数であるの標準エイリアスです。%
は、ボブが言及したように、の標準エイリアスですForEach-Object
。二重引用符で囲まれた文字列"ch$_"
は変数を補間するため、と同等'ch' + $_
です。Get-Command
(gcm
)を実行してエイリアスを検索できます。
1..9 | %{"ch$_"} | %{git add "$_"; git commit -m "$_"}
または1..9 | %{$name = "ch$_"; git add "$name"; git commit -m "$name"}
。これらのコメントは少し長くなっていますので、さらに質問がある場合は質問として質問するか、チャットに参加してください。
覚えやすく、多くの状況に適用できるため、ループバージョンに使用します。それでも複数のコマンドに使用できます。
このbashコマンドに相当するもの:
{1..9}のi DO
ます。mkdir CH $私が
行って
... PowerShellの使用:
for($i=1;
$i -le 10;
$i++)
{md ch$i}
Missing opening '(' after keyword 'for'.
このコマンド:foreach ($i in 1..9) {md ch$i}
"ch" aptディレクトリーに番号を付けますが、 "for"がわかりません。 ..; do ... done "ループ。
for($i=1; $i -le 10; $i++){md ch$i}
mamunに感謝しますが、私はまだ「Bourne again ...」ではありません;)(C ++についても知りませんが、「$ i-le」(以下の場合)を理解していると思います) "$ I ++"(〜 "I + = 1"?)平均して、コマンドでやっている...
現在のディレクトリの下に複数のディレクトリを作成します。
mkdir ('abc','def','jkl')
上記は、以下の簡略版です。文字列の配列の前にアットマークが含まれ、名前付きパラメーターの使用に注意してください。
mkdir -Path @('abc','def','jkl')
そして、あなたがずっと行きたいなら、完全なネイティブコマンドは次のようになります:
New-Item -Path @('abc','def','jkl') -ItemType Directory
PowerShellコマンドラインを使用するときは、短いバージョンを使用します。
特にPowerShellを初めて使用する人向けのスクリプトを作成する場合、ネイティブコマンド全体を作成する傾向があります。
最適なものを選択してください。
1..9 | % $_{ md -name $("ch" + $_) }
。