ささやかな日々記

日々過ごす中で感じたことや培ったことが誰かの役に立てられたらと思うSEの雑記

PowerShell 連番ファイル/連番フォルダ作成方法

ファイルやフォルダ作成でまとめて一気にフォルダを作成したいけど、
どんなふうにすればいいんだっけというときに見るためのコマンド。


まずはファイルの作成方法。
コマンドはNew-Itemで作成するが、そのナンバリングを1~10に設定。
さらに名前の指定と書式文字列でファイル名の形式を設定可能です。

以下の例では「TEST001.txt」から「TEST010.txt」までを一度に作るコマンドです。

PS C:\work> New-Item (1..10 | % { "TEST{0:000}.txt" -f $_} )


ディレクトリ: C:\work


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019/05/10 15:10 0 TEST001.txt
-a---- 2019/05/10 15:10 0 TEST002.txt
-a---- 2019/05/10 15:10 0 TEST003.txt
-a---- 2019/05/10 15:10 0 TEST004.txt
-a---- 2019/05/10 15:10 0 TEST005.txt
-a---- 2019/05/10 15:10 0 TEST006.txt
-a---- 2019/05/10 15:10 0 TEST007.txt
-a---- 2019/05/10 15:10 0 TEST008.txt
-a---- 2019/05/10 15:10 0 TEST009.txt
-a---- 2019/05/10 15:10 0 TEST010.txt

 

このコマンドはただファイルを作成するだけなので中身はありません。
作成よりもコピー時なんかに応用して使えそうです。

では次にフォルダの作成方法です。
基本的にファイル作成時と変わりません。
「New-Item」のオプションでフォルダ(ディレクトリ)だよ、と指定してあげるだけです。
また、フォルダなので拡張子.txt部分は消します。

PS C:\work> New-Item (1..10 | % { "TEST{0:000}" -f $_} ) -ItemType Directory


ディレクトリ: C:\work


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2019/05/10 15:13 TEST001
d----- 2019/05/10 15:13 TEST002
d----- 2019/05/10 15:13 TEST003
d----- 2019/05/10 15:13 TEST004
d----- 2019/05/10 15:13 TEST005
d----- 2019/05/10 15:13 TEST006
d----- 2019/05/10 15:13 TEST007
d----- 2019/05/10 15:13 TEST008
d----- 2019/05/10 15:13 TEST009
d----- 2019/05/10 15:13 TEST010

これはバッチに組み込んだりと何かと使う機会が多そうです。
ちなみに上の処理はコマンドレットを使用していますが、「mkdir」も使えます。

PS C:\work> mkdir (11..20 | % { "TEST{0:000}" -f $_} )


ディレクトリ: C:\work


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2019/05/10 15:17 TEST011
d----- 2019/05/10 15:17 TEST012
d----- 2019/05/10 15:17 TEST013
d----- 2019/05/10 15:17 TEST014
d----- 2019/05/10 15:17 TEST015
d----- 2019/05/10 15:17 TEST016
d----- 2019/05/10 15:17 TEST017
d----- 2019/05/10 15:17 TEST018
d----- 2019/05/10 15:17 TEST019
d----- 2019/05/10 15:17 TEST020

 

うん、こっちのほうが書くのは簡単ですね。