PowerShellでテスト用のダミーファイルを大量に作成する方法を記録しておきます。
(突っ込まれるまえに言っておく)ネタとしては既出ではあるのですが、、、スクリプトにしたので流用できるように残しておきます。
サイズを指定してテスト用ファイルを大量に作成する
作成コマンド構文
作成するコマンドと構文は以下です。
※PowerShell で実行する場合は、サイズの"単位"を指定できます。(コマンドプロンプトではNG)
1 |
fsutil file createnew $file (サイズ) |
サイズは以下のように指定します。
1 2 3 4 5 |
fsutil file createnew $file 10000 # 10KB fsutil file createnew $file (10000) # 10KB fsutil file createnew $file (10KB) fsutil file createnew $file (10MB) fsutil file createnew $file (10GB) |
単位を指定する場合は、() カッコが必要です。指定しない場合は、カッコを付けても付けなくてもOKのようです。
ちなみに、サイズを指定する必要がない(0バイトでよい)のであれば、以下でもOK。
1 |
New-Item -Type File $file |
大量に作成する方法
以下2点編集して、ファイルを作成したいフォルダにスクリプトをを保存して実行すると指定した内容でファイルが作成されます。
変数 | 値 |
$file_name | 作成するファイル名 |
$target_count | 作成するファイル数(いくつ作成するか) |
ファイル名の末尾に付番されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$base_dir = Split-Path $myInvocation.MyCommand.path $file_name="test" $target_count=10 $Count=1 while ($True) { if ($Count -gt $target_count) { break } $num = $Count.ToString("000") $file="$base_dir\${file_name}_${num}.file" fsutil file createnew $file (10KB) | out-null $Count++ } |
実行結果が以下です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
PS D:\test\test> .\create_dummy_file.ps1 PS D:\test\test> ls Directory: D:\test\test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2022/02/13 19:44 444 create_dummy_file.ps1 -a--- 2022/02/13 20:06 10240 test_001.file -a--- 2022/02/13 20:06 10240 test_002.file -a--- 2022/02/13 20:06 10240 test_003.file -a--- 2022/02/13 20:06 10240 test_004.file -a--- 2022/02/13 20:06 10240 test_005.file -a--- 2022/02/13 20:06 10240 test_006.file -a--- 2022/02/13 20:06 10240 test_007.file -a--- 2022/02/13 20:06 10240 test_008.file -a--- 2022/02/13 20:06 10240 test_009.file -a--- 2022/02/13 20:06 10240 test_010.file |
もうひとつ、引数にフォルダを指定するバージョン。こちらのほうが汎用性があるといえばありますが、検証などでぱっと使うには上の簡易版のほうがすきです。繰り返しいろんなフォルダで作成する必要がある場合なんかはこっちのほうがよいかなと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
## スクリプトファイルフォルダ/ファイル名取得 $base_dir = Split-Path $myInvocation.MyCommand.path $script_file = $MyInvocation.MyCommand.Name ## 対象指定(フォルダ/ファイル名/ファイル数) $target_dir = $Args[0] $target_file = $Args[1] $target_count = $Args[2] ## 引数チェック(引数が3個以外ならexit) if ($Args.length -ne 3) { Write-Output "Error : 引数にフォルダ名/ファイル名/ファイル数を指定してください。" Write-Output "Usage : .\$script_file D:\parent\test testfile num" exit } ## 指定した内容でダミーファイル作成 $Count=1 while ($True) { if ($Count -gt $target_count) { break } $num = $Count.ToString("000") $file="$target_dir\${target_file}_$num.file" fsutil file createnew $file (10KB) | out-null $Count++ } |
実行結果は簡易版と同じです。
おまけ
このページの手順でファイルを大量に作成したら、以下の手順でフォルダを複製することで、さらに大量にファイルを生成できます。
-
【PowerShell】フォルダを再帰的に大量に複製する
PowerShellでフォルダを大量に複製する方法を備忘録として記録します。 大元のフォルダを複製していくので、複製されたフォルダは連番で付番されていきます。検証用のデータを作成するときなんかに使う想 ...
以上です。