ネットワークの転送速度を測定する時にテストデータを送信してみてどのくらい時間が掛かったのか測定したい時ってありますよね。
1MBのファイルを送ってみたいとか、
1MBのファイルを100個送ってみたいとか、
更に巨大な1GBのファイルを送ってみたいとか。
そんな時にテストデータを作る作業を超効率化するお話です。
テストデータを作るの面倒
例えばメモ帳を開いて「abcde」と半角文字で入力したファイルのサイズは5Byteですよね。
じゃあ、1MBのファイルを作りなさいと言われたらこの「abcde」を何回書けば良いでしょうか?
答えは
209,715回と「a」を1文字
です。
1MBは1,024KBで
1KBは1,024Byteなので
1MB は1,024 * 1,024 = 1,048,576Byte
これを「abcde」の5Byteで割るので
1,048,576 / 5 = 209,715 ・・・ 1
となります。
流石に「abcde」をコピーして「Ctrl+V」を20万回以上も繰り返したら指が腱鞘炎になってしまいそうですね。
指自慢の方は「Ctrl+V」で貼り付けてください。って言うのは冗談で気がおかしくなってしまうのでやめてください。
便利コマンド「fsutil」があるじゃないか
ちょっと高性能なテキストエディタ、例えば
サクラエディタ
無償で使えるのでボクはほぼコレで仕事してます。
秀丸エディタ
こちらも説明不要の定番エディタです。
シェアウェアで4,320円(税込)ですが、それだけの価値はあるエディタではないでしょうか。
こんなのを使うとマクロ機能があるので機械的に20万回ほどペーストを繰り返させることも可能ですがWindowsには便利なコマンドが用意されていました。
それが「fsutil」です。
「fsutil」にはいくつかの機能があのですが、今回のご紹介は指定サイズのファイルを作成すると言うものです。
使い方はチョー簡単。
コマンドプロンプト以下のコマンドを実行してください。
fsutil file createnew <ファイル名> <長さ>
(例) fsutil file createnew C:\test.txt 1000
Cドライブ直下にtest.txtと言うファイル名で1,000Byteのファイルを作成します。
ファイルの中身と使い道
このファイルですがメモ帳で開くと何も書かれていないんですね。
なのにファイルサイズは「ゼロ」じゃない。
バイナリエディタで開いてみましょう。
ちなみに今回使ったバイナリエディタは「バイナリエディタBz」
0x00でひたすら書かれているのがわかりますね。
HDDやメモリを初期化したのと同じ状態で、使用容量は「0」ですが、ディスクの領域としては確保されているということです。
そして最初にも書きましたが、このファイルを使ってネットワーク間でのファイル転送速度を測定したり、負荷テストなんかに利用できます。
ファイルも瞬間で作成される(50Mまでしか試してませんが)のでめちゃくちゃ重宝するコマンドですね。
しかもファイルを作成する以外にも使えるみたいなので今度色々試してみよう。
最後に
Windowsとの付き合いはかなり長いですが、知らないうちに便利コマンドが用意されていたりしてビックリです。
流石に1MBのファイルを作るのに20万回もペーストしたりなんかはしませんが、スクリプトで20万回繰り返させるようなことをするところでした。
「1MBのテストファイルを作りたいんだけど」って会社の若手に相談して、こんなコマンドありますよって「fsutil」が出て来たらオジサン感動してしまうな。