UNIXにddと言うコマンド*1がある。指定したデバイス、バイト数、ブロック数のデータを読み書きできるコマンドだ。その特性上、ハードディスクやUSBメモリのパーティション、セクターのバックアップに用いられたり、光学メディアをISO化するなどの目的で利用される。
同様のコマンドはWindowsには存在しないのだが、代替手段はある。DD for Windows*2だ。
ddはコピーやバックアップ以外に、バイナリ・ファイルの生成、編集にも利用されることがある。DD for Windowsではこれに対応できないのだが、PowerShellで同じことができる。”Set-Content”を用いるのだ。
docs.microsoft.com
バイナリ・ファイルの生成
基本的に、”Set-Content”は文字列操作のコマンドだ。指定ファイル中の文字列を置換することができる。指定ファイルが存在しなければ、指定した文字列を含むテキスト・ファイルが新規作成される。
/dev/zero
この特性を応用して、バイナリ・ファイルを生成することができる。文字列の代わりに、バイト配列を指定するのだ。
例えば、次のコードを実行すると、”my_binary.dat”が出力される。このファイルは、128KBのバイナリ・ファイルだ。
出力されたファイルの中身を確認すれば、これが「/dev/zero」に相当しているのが理解できる。