2019年3月2日土曜日

PowerShellで、連番を付けたフォルダを沢山作りたい

フォルダに連番を付けたものを沢山作りたい!というような時、PowerShellだと驚くほどに簡単にシンプルに書く事が出来ます。


$V=@(1..10);$V|%{NEW-ITEM ("F"+$_.ToString("00")) -ItemType Directory}

↑たとえば、1から10までの連番を付けた「Fxx」というフォルダを作りたい時は上記のように書くだけです。

あえて、変数や配列を使ってみましたが、実はもっともっと簡単に書く事が出来ます。



1..10|%{NEW-ITEM ("F"+$_.ToString("00")) -ItemType Directory}

↑PowerShellは、なんと、(たとえば)1..10と書くだけで1から10までの10個要素を持った配列を暗黙で作成する事が出来ます。

ただ、他の言語でもそうなんですが、あんまり省略し過ぎるのも微妙なのでなかなか悩ましいところです。



Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2019/03/02     11:34                F01
d-----       2019/03/02     11:34                F02
d-----       2019/03/02     11:34                F03
d-----       2019/03/02     11:34                F04
d-----       2019/03/02     11:34                F05
d-----       2019/03/02     11:34                F06
d-----       2019/03/02     11:34                F07
d-----       2019/03/02     11:34                F08
d-----       2019/03/02     11:34                F09
d-----       2019/03/02     11:34                F10

↑実行すると、連番付きフォルダが一気にできます。


削除したい時は色々なやり方があるのですが、シンプルに同パターンでREMOVE-ITEMすれば良いかなと。



1..10|%{REMOVE-ITEM ("F"+$_.ToString("00"))}

↑これで削除されます。