PowerShellを使用して重複ファイルを検索することは、コマンドに慣れないユーザーにとってちょっと難しいかもしれません。この記事では、PowerShellを使用して重複ファイルを探して削除する具体的な手順を示します。さらに、難しい操作なしに重複ファイルを検索して削除するためのよりユーザーフレンドリーな重複ファイル検索、削除ソフトを紹介します。
もちろん、Windowsコンピュータで重複ファイルを検索するためにPowerShellを使用することができます。PowerShellは、コマンドラインシェル、スクリプト言語、および構成管理フレームワークで構成されるクロスプラットフォームのタスク自動化ソリューションです。PowerShellはWindows、Linux、およびmacOS上で実行されます。これは.NETフレームワーク上に構築されており、多くのシステム機能やライブラリにアクセスすることができ、幅広いユーザーにとって不可欠なツールとなっています。
PowerShellの柔軟性と拡張性により、Windows PC上で重複ファイルを探して削除するための重要なツールとなります。さまざまな基準に基づいて、コンテンツ、名前、サイズなどを含む重複ファイルを検索し、特定のコマンドとスクリプトを使用してそれらを安全に削除して、ディスク領域を解放することができます。
この部分では、PowerShellを使用して重複ファイルを検索して削除する方法についてのステップバイステップのガイドを提供し、この目標を達成するためのスクリプトを示します。
注意: ✍間違ったコマンドを入力するとデータを失ったり、他の取り返しのつかない結果に遭遇する可能性があります。正しいコマンドを理解して入力することを確認してください。
PowerShellのGet-FileHashコマンドレットは、指定されたハッシュアルゴリズムを使用して、ファイルのハッシュ値を計算します。ハッシュ値とは、ファイルの内容に対応する一意の値です。ハッシュは、ファイルの内容をファイル名や拡張子などの指定で識別するのではなく、ファイルの内容に一意の値を割り当てます。この記事では、重複ファイルを識別するためにハッシュ値を利用します。以下のコマンドを入力します。
検索したいファイルの特定の保存パスを入力する必要があります。
🔔例:Get-FileHash -Path 'D:\ISO\WinPE.iso' -Algorithm SHA512
Get-FileHashコマンドレットは、特にインターネットからデータをダウンロードする際にファイルの整合性を検証するために使用されます。ハッシュ方法が指定されない場合、デフォルトはSHA256です(ほとんどの状況では十分)。Get-FileHashはパイプライン処理をサポートしており、Get-ChildItemコマンドレットと組み合わせて使用することで、Get-ChildItemによって提供された各アイテムのハッシュを計算することができます。
豆知識:
💿パイプライン処理(|
)は、CPUなどのプロセッサの性能を向上させるための技術のひとつであり、複数の命令を並行して実行するための方式です。
💿「Get-ChildItem」は、ディレクトリ情報を取得するためのコマンドレットです。例えば、ファイルやフォルダなどの情報を取得することができます。
それでは、一緒にGet-FileHashコマンドレットを使用して重複ファイルを検索する具体的な手順を見ていきましょう。
🎃オプション1.ハッシュ値に基づいて重複ファイルを検索
以下のコマンドは、再帰的にフォルダ内のすべてのファイルを取得し、それらのハッシュを生成するためにGet-FileHashに渡し、一致するハッシュ値に基づいてそれらをグループ化します。Get-FileHashコマンドレットの結果に応じて、パスを置き換える必要があります。
豆知識: 💿再帰的処理とは同じ処理を繰り返すという意味です。
このコマンドは小さいファイルに最適ですが、ソースディレクトリに大量の大容量のファイルがある場合、それらを削除する時エラーが発生する可能性があります。
前述のプログラムはファイルのサイズに関係なくすべてのファイルのハッシュ値を計算することは時間のかかる手続きです。大量のファイルを持つディレクトリに対し、Get-FileHashコマンドレットは重複ファイルを探すのに非常に長い時間がかかる可能性があります。
🎃オプション2.ファイルサイズとハッシュ値に基づいて重複ファイルを検索
上記のコマンドと比較して、ファイルサイズとハッシュ値に基づいて重複ファイルを検索する方が最適化されています。
ファイルのサイズは一致する必要があり、つまり異なるサイズのファイルは重複と見なされません。おそらくGet-ChildItem PowerShellコマンドレットの長さプロパティにはおなじみでしょう。ディレクトリからファイルサイズを取得するため、ハッシュ値を計算する必要がありません。
豆知識: 💿Get-ChildItem、Get-Itemでファイル名を指定し、Lengthプロパティを表示すれば簡単にファイルサイズ(バイト数)を簡単に取得することができます。
秘訣は、同じサイズのファイルに対してのみハッシュ値を計算することです。異なるサイズのファイルは重複しないことをすでに知っているため、この方法でコマンドの全体的な実行時間が大幅に短縮されます。Get-FileHashの結果に応じて、パスを置き換える必要があります。
このコマンドは、同じサイズのファイルをグループ化し、それらのファイルをGet-FileHashに送ってハッシュ値を計算します。
PowerShellのGet-FileHashコマンドレットを使って重複ファイルを見つけた後、それらを適切に処理する必要があります。重要なファイルを扱う際には、すぐに重複ファイルを削除することはお勧めできません。代わりに、それらを十分な空きスペースがある別のディレクトリに移動することができます。PowerShellで削除したくない重要なファイルやフォルダを移動する場合、Move-Itemコマンドレットを使います。
豆知識: 💿Move-Itemコマンドレットは、プロパティ、コンテンツ、子項目を含む項目を、ある場所から別の場所に移動します。移動元と移動先は、どちらも同じプロバイダーでサポートされている必要があります。たとえば、ファイルやサブディレクトリを別のディレクトリに移動したり、レジストリのサブキーを別のキーに移動したりできます。
ディレクトリに数ファイルしか含まれていない場合、手動でどれを移動し、どれをソースディレクトリに残すかを選択することができます。
ファイルのバックアップがある場合、PowerShellを使用して重複ファイルを直接移動することもできます。
PowerShellを使用して重複ファイルを検索および削除することは可能ですが、そのコマンドは非常に複雑で、使用するにはリスクがあります。プロセス中のたった1つのミスが、ファイルディレクトリを破損する可能性があります。そのような場合、ユーザーフレンドリーな重複ファイル検索、削除ソフトが不可欠となります。ここで、すべてのWindows PCと互換性のある多機能なディスクおよびパーティション管理ソフトであるAOMEI Partition Assistant Professionalをお勧めします。
その「重複ファイルファインダー」機能を使用して、迅速かつ効率的に重複ファイルを探し、削除することができます。画像、ビデオ、オーディオ、ドキュメント、アーカイブなどのファイル形式に対応します。また、この機能はファイル形式を選択して、削除することができます。例えば、jpgファイルのみを削除することができます。さらに、複雑なコマンドを使用せずにデバイスで自動的なクリーニング計画を定期実行することもできます。
ステップ 1. AOMEI Partition Assistantを起動し、メインタブの「空間を解放」をクリックし、「重複ファイルファインダー」を選択します。
ステップ 2. ここでは、コンピュータ上のすべてのパーティションが表示されます。カスタマイズして「スキャン」をクリックして、重複ファイルの検索を開始します。この画面下の「すべて」タブで除外するファイル形式を指定して、特定の拡張子のファイルをスキャンの対象から外すことができます。また「ピクチャ」「ビデオ」「オーディオ」「ドキュメント」「アーカイブ ファイル」に対して、含めるファイル形式を指定して、特定の拡張子のファイルのみをスキャンすることができます。
ステップ 3. 処理が完了すると、設定した条件を満たすすべての重複ファイルが表示されます。「プレビュー」ボタンをクリックすると、重複ファイルの詳細情報を確認することができます。
1. 削除したい重複ファイルを手動で選択します。
🎯重要:通常、グループごとに少なくとも1つのファイルを保持することをお勧めします。グループ内のすべてのファイルを選択した場合、「グループ全体を削除してもよろしいですか?」というメッセージが表示されます。確認したら、「OK」をクリックします。
2. 「設定」をクリックして、適切な削除方法を選択するか、「個人用設定」をカスタマイズすることができます。設定の変更を保存するために、「はい」をクリックします。ここでは「ゴミ箱に移動」を例に取りましょう。
3. 「ゴミ箱に移動」ボタンをクリックして、手動で選択した重複ファイルを削除します。
4. 削除が完了したあと、詳細情報を確認することができます。
🔊ヒント:削除した重複ファイルはゴミ箱に移動されるため、コンピューターのゴミ箱から、削除したファイルを見つけたり、「元に戻す」で復元することができます。
「スマート選択」は「設定」に基づいています。
1. 「設定」では、削除方法を変更・選択するか、「個人用設定」をカスタマイズすることができます。設定の変更を保存するには、「はい」をクリックします。ここでは「指定したフォルダに移動」を例に取りましょう(「D:\」を保存場所として選択します)。
2. 「スマート選択」をクリックすると、「お好み設定」に従って一部の重複ファイルが自動的に選択されます。
3. 「指定したフォルダに移動」ボタンをクリックして、スマート選択で重複ファイルを削除します。
4. 削除が完了するまで時間がかかる場合があります。完了したあと、詳細情報を確認することができます。
🔊ヒント:削除した重複ファイルは指定した場所(D:\)に移動されるため、移動先から、削除したファイルを見つけたり、操作(削除、コピー、切り取り、名前の変更など)することができます。
PowerShellはWindowsユーザーにとってシステム設定を変更するための非常に実用的なツールです。ただし、パソコン初心者にとってはあまりフレンドリーではありません。したがって、単に重複ファイルをクリーンアップしたい場合、重複ファイルの削除ソフトAOMEI Partition Assistant Professionalがお勧めです。このソフトを利用して、簡単かつ迅速に重複ファイルを削除することができます。
もし大事なファイルを誤って削除してしまった場合、AOMEI Partition Assistant Professionalの「データ復元」機能を利用して、削除したファイルを復元することができます。念のためにデータをバックアップしたい場合、「ディスクをクローン」機能を利用することもできます。また、コンピュータのパフォーマンスを向上させるために、空き領域の割り当て、インストールされたアプリの移動などの多くの便利な機能が備わっています。
さらに、Windows Serverシステム向けのServer版も提供されています。