Windowsコマンド(fsutil file setZeroData)(その3)


(ナノ-KEMURIKUSA(Short Ver.))

アニメ『ケムリクサ』
ナノのOP、カッコいいです。
アニメは、というと、ん~まだ1話しかみてないので、分かりません。

ゼロ埋めって結構使うんですよねえ。自由自在にファイルの内容を操作できるようになると、テストデータ作成に強くなります。
前回までは、offsetの値をいろいろ変えてみましたが、今回はlengthの値を変えて確認してみます。
元データは、いつも使っている改行入りHELLO文字列です。

PS C:\Users\takk2\tmp> gc -encoding byte test.txt
72
69
76
76
79
13
10
PS C:\Users\takk2\tmp>

では、ファイルの長さを超えるlengthを指定してみます。

PS C:\Users\takk2\tmp> fsutil file setzerodata offset=0 length=10 test.txt
ゼロ データが変更されました
PS C:\Users\takk2\tmp>

おっ、コマンド実行できました。中身を見てみましょう。

PS C:\Users\takk2\tmp> gc -encoding byte test.txt
0
0
0
0
0
0
0
PS C:\Users\takk2\tmp>

7 Byteすべてのデータがゼロになりました。ファイルの長さを超えてlengthを指定することは可能でしたが、ファイルの長さ以上のゼロデータは追加されないようです。

次は、繰り返しsetZeroDataを実行して、1文字おきに0データにすり替えてみます。
では元データの作成。

C:\Users\takk2\tmp>echo ABCDEFGHIJKLMNOPQRSTUVWXYZ>test.txt

C:\Users\takk2\tmp>

1文字おきのoffsetは、forコマンドで作ることにしましょう。

C:\Users\takk2\tmp>for /L %i in (0,2,25);do @echo %i
0
2
4
6
8
10
12
14
16
18
20
22
24

C:\Users\takk2\tmp>
C:\Users\takk2\tmp>fsutil file setzerodata offset=18 length=1 test.txt
ゼロ データが変更されました

~省略~

C:\Users\takk2\tmp>fsutil file setzerodata offset=22 length=1 test.txt
ゼロ データが変更されました

C:\Users\takk2\tmp>fsutil file setzerodata offset=24 length=1 test.txt
ゼロ データが変更されました

C:\Users\takk2\tmp>

実行できましたので、ファイルをtypeしてみましょう。

C:\Users\takk2\tmp>type test.txt
 B D F H J L N P R T V X Z

C:\Users\takk2\tmp>

よくできました。