Windowsコマンドプロンプトでファイルを完全消去する方法

この記事では、Windowsのコマンドプロンプトを用いて、特定のファイルを指定した回数上書きして完全に消去する方法について解説します。セキュリティ上の理由やデータ消去の確実性を確保する目的で、このような処理が必要となる場面が考えられます。具体的なコードとその詳細な解説、さらに応用例を含めています。

目次

コマンドプロンプトとは?

コマンドプロンプトは、Windowsオペレーティングシステムにおいて、ユーザーがコンピュータにテキストベースの「コマンド」を入力して直接操作するためのインターフェースです。このコマンドは、特定の操作を行うための指示や命令をコンピュータに伝えるもので、ファイルの操作、システム設定の変更、ネットワークの管理など、様々なタスクを実行することが可能です。グラフィカルユーザーインターフェース(GUI)の前身として、初期のコンピュータシステムで主に使用されていましたが、今日でも多くの専門家や上級ユーザーが高度なタスクを効率的に実行するためにコマンドプロンプトを使用しています。

基本的なコマンドの解説

@echo off
for /L %%i in (1,1,5) do (
    copy /y NUL "C:\path\to\file.ext"
)
del "C:\path\to\file.ext"

上記のバッチファイルは、指定したファイルを5回上書きしてから完全に削除するものです。
1. `@echo off`:コマンドの出力を非表示にします。
2. `for /L %%i in (1,1,5) do`:1から5までの数を1つずつ増やしながらループを回します。
3. `copy /y NUL “C:\path\to\file.ext”`:指定したファイルに空の内容を上書きします。
4. `del “C:\path\to\file.ext”`:指定したファイルを削除します。

注意点

このコードは、ファイルのデータを上書きしますが、物理的なディスクのデータの消去を保証するものではありません。セキュリティ上、完全にデータを消去するための専用のソフトウェアの使用を検討してください。

応用例1:複数のファイルを一括消去

@echo off
for %%F in (C:\path\to\directory\*.ext) do (
    for /L %%i in (1,1,5) do (
        copy /y NUL "%%F"
    )
    del "%%F"
)

指定したディレクトリ内のすべての.extファイルを5回上書きしてから完全に削除します。

応用例2:サブディレクトリも含めて消去

@echo off
for /R "C:\path\to\directory" %%F in (*.ext) do (
    for /L %%i in (1,1,5) do (
        copy /y NUL "%%F"
    )
    del "%%F"
)

指定したディレクトリおよびそのサブディレクトリ内の全ての.extファイルを5回上書きしてから完全に削除します。

応用例3:ランダムなデータで上書き

@echo off
for /L %%i in (1,1,5) do (
    certutil -random 4096 "C:\path\to\file.ext"
)
del "C:\path\to\file.ext"

指定したファイルをランダムなデータで5回上書きした後、ファイルを削除します。

応用例4:指定したファイルサイズのランダムデータで上書き

@echo off
set size=2048
for /L %%i in (1,1,5) do (
    certutil -random %size% "C:\path\to\file.ext"
)
del "C:\path\to\file.ext"

指定したサイズのランダムデータ(この例では2KB)で指定したファイルを5回上書きした後、ファイルを削除します。

まとめ

Windowsのコマンドプロンプトを用いて、特定のファイルを指定した回数上書きして完全に消去する方法は非常に便利ですが、物理的なディスクのデータの消去を保証するものではありません。セキュリティ上の理由で完全にデータを消去する場合、専用のソフトウェアの使用を検討することをおすすめします。

コメント

コメントする

目次