【Windows 10対応】delコマンドで特定のファイル名やパターンに一致するファイルをまとめて削除するTech TIPS

コマンドプロンプト上でファイルを削除するには「delコマンド」を用いる。サブフォルダ以下にある特定のファイル名を全て削除するには、「/sオプション」を利用する。

» 2019年12月06日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Windows 7/Windows 8.1/Windows 10/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2/Windows Server 2016

コマンドラインで利用できる「delコマンド」は便利だが…… コマンドラインで利用できる「delコマンド」は便利だが……
特定のパターンに合致する全ファイルを手軽かつ確実に削除できるなど、「delコマンド」は便利だが、操作を誤ると目的外のファイルを削除してしまうこともある。

 コマンドラインで利用できる「delコマンド」には、特定のパターンに合致する全ファイルを手軽かつ確実に削除できるなど、エクスプローラーにはない便利さがある。その一方で使い方を誤ると、残したかったファイルが削除されてしまう「事故」が生じやすいコマンドでもある。

 例えば、「Microsoft Word」の古い文書ファイル形式である拡張子「.doc」のファイルを削除しようとして、「del *.doc」とすると、新しい形式である拡張子「.docx」のファイルも削除されてしまう(8.3形式のファイル名を生成している場合。詳細は、Windows TIPS「8.3形式の短いファイル名を生成しないようにする」参照のこと)。

 そこで、まずはdelコマンドの基礎的な注意点から解説する。その後、ファイル名やパターンに一致したファイルをまとめて削除する方法を紹介していく。

コマンドプロンプトでファイルを削除するにはdelコマンド

 コマンドプロンプトでファイルを削除する場合、通常はdelコマンド(もしくはeraseコマンド。どちらでも同じ)に削除したいファイル名やワイルドカード指定を付けて実行すればよい。このコマンドの使い方は次の通りである。

 削除したいファイルが複数ある場合は、delコマンドの引数として複数並べてもよいし、ワイルドカードで指定することもできる。ファイル名に空白文字が含まれている場合は、「"(ダブルクオート記号)」で囲む。コマンドプロンプトの基本的な使い方については、Tech TIPS「これだけは覚えておきたいコマンドプロンプトの使い方」も参照のこと。

dirコマンドのヘルプを表示する dirコマンドのヘルプを表示する

 実際に使用すると次のようになる。delコマンドを実行すると、基本的には削除の確認なしにすぐ削除されるので十分に注意して実行すること。ファイル名のパターンとして「*」もしくは「*.*」を指定するか、「/Pオプション」を付けると確認メッセージが表示されるので、[Y]キーを入力した場合のみ削除が実行される。「/Qオプション」を付けた場合は、逆に確認なしで削除される。

dirコマンドの基本的な使い方 dirコマンドの基本的な使い方

【注意】delコマンドで削除したファイルは[ごみ箱]から復旧できない

 エクスプローラーでファイルを削除する場合と違って、delコマンドでファイルを削除すると、[ごみ箱]には残らない。削除したファイルを復活させるには、「以前のバージョン」機能を使うか(Tech TIPS「上書き/削除したファイルを『以前のバージョン』で復旧させる」参照)、バックアップからリストアするなどの必要があり、大変面倒なことになる。

【注意】フォルダ名を指定するとその中のファイルが全て削除される

 削除対象としてフォルダ名(ディレクトリ名)を指定すると、そのフォルダの中にある全ファイルが削除対象となるので(例:「del folder」は「del folder\*」や「del folder\*.*」と同じになる)、ファイル名と間違ってフォルダ名を指定して削除しないように注意すること。なお、「del .」は「del *.*」と同じである。

フォルダ名を指定するとその中が全て削除される フォルダ名を指定するとその中が全て削除される

【注意】delコマンドではフォルダを削除できない

 delコマンドは、ファイルを削除できるが、フォルダを削除することはできない。例えば前述のようにフォルダ名を指定した場合、フォルダ内のファイルは削除される一方で、指定したフォルダそのものや、その中にあるサブフォルダは削除されない。

 フォルダごとまとめて削除したければ、「rmdirコマンド(=rdコマンド)」を利用する。

フォルダごとまとめて削除するにはrmdirコマンドを使う フォルダごとまとめて削除するにはrmdirコマンドを使う

 カレントフォルダの中にあるファイルとフォルダをまとめて削除したければ、「rmdir /s .」とすればよい。

「rmdir /s .」でカレントフォルダの中にあるファイルとフォルダをまとめて削除 「rmdir /s .」でカレントフォルダの中にあるファイルとフォルダをまとめて削除

delコマンドでサブフォルダ内のファイルまでまとめて削除するには?

 現在のフォルダの下にある、指定したパターンにマッチするファイルを全て削除するには「/sオプション」を付けて実行すればよい。

 単に「del /s *.txt」のようにすると、現在のフォルダから下にある全ての*.txtファイル(拡張子がtxtのファイル)を削除できる。

 「del /s c:\doc\work1\*.txt」のようにフォルダ名を前に付けてワイルドカード指定すると、そのフォルダ(この場合はc:\doc\work1)以下にある全ての*.txtファイルをまとめて削除できる(フォルダそのものは削除されない。削除されるのは、その中にあるファイルだけ)。

ワイルドカードを使って特定の拡張子のファイルを削除 ワイルドカードを使って特定の拡張子のファイルを削除

 この場合も確認なしで該当するファイルが全て削除されるので(削除されたファイル名は表示される)、よく確認してから実行すること。

 何が削除されるかよく分からない場合は、まず「dir /s *.txt /b」や「dir /s c:\doc\work1\*.txt /b」などを実行して、どのファイルが削除対象になるかを確認するとよい。dirコマンドの使い方については、Tech TIPS「Windowsのdirコマンドでファイル名の一覧を取得する」も参照してほしい。また/Pオプションを付けて、余計なファイルが削除されないか、確認表示させてもよいだろう。

 ただし「dir /s ~」と違って、「del /s ~」ではシンボリックやジャンクションのリンク先はたどれない。フォルダへのリンクの指す先にファイルが存在しても、それらは削除されない。「cdコマンド」などでリンク先へ移動してから削除するか、「del /s <リンク先>\<対象ファイル名>」のように明示的にパスを指定すること(リンクについてはTech TIPS「Windowsのシンボリックリンクとジャンクションとハードリンクの違い」参照)。

読み取りのみやシステム/隠し属性の付いたファイルを削除するには?

 delコマンドでは、何も属性の付いていないファイルはそのまま削除できる。だが、読み取りのみの属性の付いたファイルはそのままでは削除できない(ファイルの属性は「attribコマンド」で確認できる)。

 読み取りのみの属性の付いたファイルを削除するには、事前にattribコマンドなどで読み取りのみ属性(R属性)を外すか、「/Fオプション」を付けてdelコマンドを実行する。

読み取りのみファイルを削除するには/fオプションを使う 読み取りのみファイルを削除するには/fオプションを使う

 読み取りのみ以外の属性、例えばシステム属性(S属性)や隠し属性(H属性)の付いたシステムファイル(例:Thumbs.dbなど。Tech TIPS「WindowsでThumbs.dbファイルを作成しないようにする」)は、デフォルトのままではdelコマンドの削除の対象とならない(dirコマンドでもSやH属性の付いたファイルが表示されないのと同じ理屈だ)。

 これらの属性を持つファイルを削除したい場合は、/asや/ahオプションを付けてdelコマンドを実行する。複数の属性をまとめて対象とするなら/Aだけでもよい。

属性を持つファイルを削除する 属性を持つファイルを削除する

■更新履歴

【2019/12/06】画面などを追加しました。

【2017/01/23】初版公開。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

Tech TIPS 連載一覧

次回の掲載をメールで受け取る

「Tech TIPS(旧Windows TIPS)」では、WindowsクライアントやWindows Serverを中心に、クラウドサービスやAndroidスマートフォン/タブレット、iPhone/iPad(iOS)、Office、スクリプトなどの「テクノロジ」をビジネスシーンで活用するためのテクニックや基礎知識を解説しています。

Windows Server Insider 記事ランキング

本日月間

注目のテーマ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。