fsutil続きです。setzerodataを使ってみます。
使用法の確認。
C:\Users\takk\tmp>fsutil file setzerodata 使用法 : fsutil file setzerodata offset=<値> length=<値> <ファイル名> offset : ファイルのオフセット、ゼロに設定する範囲の開始点 length : ゼロの範囲の長さ (バイト) 例 : fsutil file setzerodata offset=100 length=150 C:\Temp\sample.txt C:\Users\takk\tmp>
変更前データとして7Byteのファイルを作成。
C:\Users\takk\tmp>echo ABCDE>aa.txt C:\Users\takk\tmp>powershell Windows PowerShell Copyright (C) 2014 Microsoft Corporation. All rights reserved. PS C:\Users\takk\tmp> gc -encoding byte aa.txt 65 66 67 68 69 13 10 PS C:\Users\takk\tmp>
では、setzerodataコマンドを使ってゼロで埋めてみます。
PS C:\Users\takk\tmp> fsutil file setzerodata offset=2 length=3 aa.txt ゼロ データが変更されました PS C:\Users\takk\tmp> gc -encoding byte aa.txt 65 66 0 0 0 13 10 PS C:\Users\takk\tmp>
offset=2を指定して3番目からゼロになったということは、
ファイル先頭からゼロにしたい場合は、offset=0を指定すればよいですね。
PS C:\Users\takk\tmp> fsutil file setzerodata offset=0 length=1 aa.txt ゼロ データが変更されました PS C:\Users\takk\tmp> gc -encoding byte aa.txt 0 66 0 0 0 13 10 PS C:\Users\takk\tmp>
0データでファイルを拡張できるでしょうか。offsetでファイルの末尾を指定してみます。
PS C:\Users\takk\tmp> fsutil file setzerodata offset=7 length=3 aa.txt ゼロ データが変更されました PS C:\Users\takk\tmp> gc -encoding byte aa.txt 0 66 0 0 0 13 10 PS C:\Users\takk\tmp>
ファイルの長さは変更されませんでした。
PS C:\Users\takk\tmp> dir aa.txt ディレクトリ: C:\Users\takk\tmp Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2018/06/18 20:49 7 aa.txt PS C:\Users\takk\tmp>
Get-Content(gc)で見ても、dirで見ても、ファイルサイズは変わってません。
setzerodataではファイルサイズは変えられないようです。
コメント