完全一致の重複ファイルとは、別のファイルと内容が1バイト単位で一致するファイルのことです。Windowsでは、ファイルをサイズでグループ化してから、各グループの暗号学的ハッシュを比較することで見つけられます。短いPowerShellコマンドで実行できます。次に各ファイルのコピーを1つ残し、ほかのコピーをごみ箱経由で削除し、アプリが必要とするフォルダーには手を付けません。ファイル名や日付だけでは何も証明できないため、それらを根拠に判断しないでください。
重複ファイルとは何か
重複ファイルと呼ばれるものには3種類ありますが、そのように扱ってよいのは1種類だけです。
- 同じ名前。別々のフォルダーにある2つのファイルが、どちらも
report.docxという名前でも、異なる文章が入っていることがあります。 - 同じサイズ。2枚の写真が偶然同じサイズになることがあります。また、名前を変えたコピーは、サイズはそのままでも元の名前ではなくなります。
- 同じ内容。すべてのバイトが一致します。片方を削除しても何も失われないと判断できるのは、この検査だけです。
内容の完全一致を調べる方法では、よく似たファイルは見つかりません。別の画質で保存し直した写真や、単語が1つ変わったドキュメントは、ハッシュが異なります。これはこの方法の限界ですが、安全性を保つ理由でもあります。異なるファイルを重複として誤検出することはありません。
ハッシュが有効な理由
ハッシュ関数は、ファイルの内容から短い指紋を作ります。Microsoftの Get-FileHash のドキュメントによると、2つのファイルのハッシュ値が同じであれば、ファイルの内容も同じです。また、このコマンドレットは既定でSHA256アルゴリズムを使用します(2026年10月確認)。先にサイズを確認すると時間を節約できます。サイズが異なる2つのファイルは一致しないため、同じサイズのファイルだけをハッシュ化すればよいからです。
スキャンする場所を選ぶ
スキャン前に対象範囲を決めます。適しているのは、自分で整理しているフォルダーです。写真ライブラリ、音楽フォルダー、ダウンロードフォルダー、外付けドライブ上のアーカイブなどが該当します。重複ファイルが意図的に存在するフォルダーは適していません。
C:\Windows,Program FilesやProgramDataプログラムは共有ファイルのコピーをそれぞれ保持していることがあり、1つ削除するとプログラムが起動しなくなる場合があります。- ソフトウェアプロジェクトの依存関係フォルダーなどのプロジェクトおよびパッケージフォルダーでは、ツールが各コピーの存在を前提としている場合があります。
- クラウド同期フォルダーは、どのファイルが実際にこのPCに保存されているのか分かるまで対象にしないでください(下記参照)。
- バックアップ。安全のために保管しているコピーは、見た目には重複ファイルとまったく同じです。
PowerShellで完全一致の重複ファイルを見つける
この方法はファイルを読み取るだけで、何も削除しません。 Windows PowerShell や ターミナルを開き、フォルダーのパスを自分のものに置き換えて実行します。大きなファイルが多数あるフォルダーでは時間がかかることがあります。また、この正確なコマンド行を、Windows 10および11のすべてのビルドでテストしたわけではありません。
Get-ChildItem "D:\Photos" -Recurse -File -ErrorAction SilentlyContinue |
Where-Object { $_.Length -gt 0 } |
Group-Object Length |
Where-Object { $_.Count -gt 1 } |
ForEach-Object { $_.Group } |
Get-FileHash |
Group-Object Hash |
Where-Object { $_.Count -gt 1 } |
ForEach-Object { $_.Group | Select-Object Hash, Path }
このコマンドは順番に5つの処理を行います。フォルダー内のファイルを一覧表示し、空のファイルはすべて同じように見えるため除外します。ファイルをサイズ別にグループ化し、同じサイズのファイルが複数あるグループだけを残します。それらのファイルのSHA256ハッシュを計算します。ハッシュ別にグループ化します。そして、ハッシュが複数回出現するすべてのファイルについて、ハッシュとパスを表示します。同じハッシュを持つファイルは完全一致の重複ファイルです。
出力が空なら、そのフォルダーに完全一致の重複ファイルはありません。出力が長い場合は、グループを1つずつ処理してください。使用しているコマンドレットについては、次のドキュメントに説明があります。 Get-ChildItem や Get-FileHash.
OneDriveやその他のクラウドフォルダーに注意する
オンラインのみのファイルはPCの容量を使わないため、その重複ファイルを削除してもローカルの空き容量は増えません。Microsoftの OneDrive Files On-Demandのページ によると、オンラインのみのファイルを開くとダウンロードされます。そのため、すべてのファイルを読み取ってハッシュ化するスクリプトを実行すると、大量のダウンロードが発生することがあります。そうしたいのでなければ、クラウドフォルダーをスキャン対象から外してください。同期フォルダー内のファイルを削除すると、同期が実行された後にクラウド上のコピーも削除されます。
ハードリンク:2つのパス、1つのファイル
NTFSドライブでは、1つのファイルに複数の名前を付けられます。Microsoftの fsutilハードリンクのドキュメント では、NTFSボリューム上の各ファイルは複数のハードリンクを持てるため、1つのファイルが複数のディレクトリに表示され、プログラムはどのリンクからでも開けると説明されています。このような2つのエントリは、2つのコピーではありません。2つの名前を持つ1つのファイルです。片方の名前を削除しても空き容量は増えません。また、同じデータであるため、上記のハッシュ方式では一致するものとして表示されます。
Windows自体も、WinSxSフォルダーでハードリンクを多用しています。そのため、システムフォルダーを重複ファイルのスキャン対象から外す理由がもう1つあります。
残すコピーを決める
一致するファイルのグループごとに、何かを削除する前に残すファイルを1つ選びます。判断には、次の点が役立ちます。
- どのフォルダーが整理して保管する場所ですか?実際に使っているライブラリにあるコピーを残し、ダウンロードフォルダーやデスクトップにある余分なコピーを削除します。
- どこかから参照されているコピーはありますか?音楽プレーヤー、写真アプリ、ショートカット、リンクされたファイルを含むドキュメントは、特定のパスを参照していることがあります。使われているコピーを削除する前に確認してください。
- 意図的にバックアップとして保管しているものですか?そうであれば、この目的では重複ファイルではありません。
- まだ分からない場合は、両方残して次に進んでください。1つのファイルで節約できる容量は、リスクに見合わないことがほとんどです。
どちらを選ぶ場合でも、確認済みのコピーを少なくとも1つ残してください。まず開いて、完全なファイルであることを確認します。
コピーをごみ箱経由で削除する
エクスプローラーで削除するコピーを選択し、 Deleteキーを押します。通常のローカルドライブでは、Windowsがそのファイルをごみ箱に移動します。ごみ箱を空にするまでは復元できます。確認メッセージを読んでください。ファイルが完全に削除されると表示されたら、そこで中止してください。これは、ごみ箱にファイルが保管されないことをWindowsが知らせる方法です。これは、一部のリムーバブルドライブやネットワーク上の場所で起こることがあります。すべてのケースを列挙したMicrosoftのページは見つかっていないため、確認メッセージの内容を優先してください。代わりにファイルを別の場所に移動するか、本当に削除するかを判断してください。
ごみ箱にはドライブごとのサイズ上限があります。ごみ箱を右クリックして、 「プロパティ」を選択し、大きなファイルを削除する場合は、この点に注意してください。ごみ箱を空にするまで空き容量は増えず、空にすると完全に削除されます。何かが見つからないことに気付く場合に備えて、空にするまで数日待ってください。
探す価値のない重複ファイル
数の多い小さな一致ファイルを調べても、時間をかける価値はありません。アプリのフォルダー内にある同一のアイコン、構成ファイル、ライブラリファイルは、そのアプリに必要なものです。削除してもほとんど容量は増えず、何かを壊す危険があります。現実的に対象とするのは、動画、ディスクイメージ、インストーラー、エクスポートしたアーカイブ、二重にコピーした写真フォルダーなどの大きなファイルです。
SafeCleanの重複ファイル検索ツール
スキャンするフォルダーを選びます。SafeCleanはファイルをサイズ別にグループ化して比較し、暗号学的ハッシュで内容全体を確認し、実際に処理する直前にも再確認します。参照フォルダーとして指定されたフォルダーには決して手を加えず、残すコピーとして優先します。少なくとも1つのコピーは必ず残り、ほかのコピーはごみ箱に移動する場合に限られます。ごみ箱が利用できない場合は何も行いません。開いているファイル、変更中のファイル、同じデータを指すハードリンクはスキップされます。
Microsoft StoreでSafeCleanを入手 機能と価格
よくある質問
内容が異なる2つのファイルが同じハッシュになることはありますか?
SHA256について、Microsoftのドキュメントでは、一致するハッシュは内容が同一であることの証明として扱われており、実際上、偶発的な衝突は懸念されません。それでも、置き換えのきかないファイルであれば、片方を削除する前に両方を開いて比較できます。
サイズと名前で見つけた重複ファイルを削除しても安全ですか?
いいえ。名前とサイズが同じでも、内容が同一だとは証明できません。内容のハッシュを使い、確認済みのコピーを1つ残してください。
Windowsは、何かを完全に削除する前に警告しますか?
通常は警告します。確認メッセージを読んでください。完全に削除するというメッセージが表示された場合、そのファイルはごみ箱に移動しません。
重複ファイルを削除しても空き容量が増えなかったのはなぜですか?
そのファイルは、同じデータを指すハードリンク、オンラインのみのクラウドファイル、またはまだごみ箱に入っているファイルかもしれません。ごみ箱を空にし、プロパティの「ディスク上のサイズ」で実際の容量を確認してください。
似た写真も検出できますか?
いいえ。サイズを変更した写真や再保存した写真は内容が異なり、ハッシュも違います。この方法で見つかるのは完全に一致するコピーだけです。