Apakah ada perintah bawaan pada Windows 7 atau lebih tinggi untuk mengisi file dengan nol / NULL byte ?
Pemrosesan harus terjadi di tempat (yaitu harus memodifikasi sektor disk / byte file yang sebenarnya), dan tidak membuat file baru.
Sesuatu seperti:
zero c:\temp\*.*
atau
zero hello.bin
itu akan melakukan ini:
Before: hello.bin (500 MB)
5D 1A CB FF FF C0 ... AA CD 0F FF
After: hello.bin (500 MB)
00 00 00 00 00 00 ... 00 00 00 00
Jika tidak ada bawaan untuk ini, solusi apa yang ada? Atau haruskah saya melakukannya di C?
00 00
, vs.FF FF
atau menghapus file dengan aman?Jawaban:
Iya. Anda dapat menggunakan
fsutil
ini:Untuk mengisi nol file lengkap, Anda harus menggunakan offset
0
dan Anda perlu mengetahui panjang file.Bisakah kita menggunakan file batch yang akan menghitung ukuran secara otomatis?
Tentu saja.
Gunakan file batch berikut (zero.cmd):
Pemakaian:
zero test.txt
atau wildcard:zero *.txt
Contoh:
Bacaan lebih lanjut
sumber
zero myfile.bin
yaitu yang akan menghitung ukuran secara otomatis?*.txt
! Suatu hal kecil (bukan masalah besar jika tidak mungkin dengan mudah, hanya bertanya seandainya itu mungkin dengan hanya satu atau dua baris dalam batch): apakah ini akan bekerja secara rekursif untuk semua file dalam subfolder? Sepertizero -r c:\temp\
akan nol semua file dalam folder ini atau dalam subfoldernya.fsutil setzerodata
benar - benar 100% aman? yaitu tidak ada risiko mengalokasikan sektor baru pada disk untuk menulis nol byte, dan meninggalkan data sebelumnya masih di suatu tempat di disk? ;) Apakah didokumentasikan bahwa ia menggantikan nol byte di tempat ?zero -r c:\temp
bisa dilakukan, tetapi akan membutuhkan file batch yang lebih rumit (parameter parsing dll). Itu bukan sesuatu yang saya ingin habiskan waktu untuk memperbaikinya.