rd/rmdir - フォルダの削除
コマンドプロンプトやバッチファイルでフォルダを削除するには、rmdirコマンド(省略形はrd)を使用します。
削除といっても、ファイルとフォルダ、フォルダが空かどうかで使うコマンドや指定するオプションが異なります。
ここでは、フォルダを削除する方法について、基本的な使い方からオプションの設定方法、削除できないときの対処法まで説明します。
ファイルを削除する場合は別のコマンドを使用します。詳しくは以下の記事を参照してください。
フォルダを削除する方法
フォルダを削除するためには、rmdirコマンドを使用します。rdと入力しても同じ結果になります。
rmdirコマンドは、以下のように使用します。
rmdir [/s] [/q] [<ドライブレター>:]<フォルダのパス>
最も基本的な使い方は、rmdirに続けて削除したいフォルダのパスを指定します。
以下は、カレントディレクトリ直下のtestフォルダを削除する例です。
実行すると、testフォルダが削除されます。
rmdirコマンドは、オプションなしでは空のフォルダしか削除できません。フォルダの中にファイルやフォルダがある場合は、以下のエラーになります。

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超 入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
空でないフォルダを削除する方法は、次のオプションの項目で説明します。
パスに空白が含まれる場合は、rmdir "my folder"のように二重引用符で囲みます。
rmdirコマンドのオプション
rmdirコマンドには、以下のオプションがあります。
| オプション | 説明 |
|---|---|
/s | 指定したフォルダ自体と、その中のすべてのファイルとサブフォルダを削除する |
/q | 確認メッセージを表示せずに削除する(/sと一緒に使用する) |
/sオプションを指定すると、フォルダの中身ごとまとめて削除できます。
/sを指定した場合は、実行時に以下のような確認メッセージが表示され、Yを入力すると削除されます。
このメッセージを表示させたくない場合は、/sオプションと併せて/qオプションを指定します。
バッチファイル内でrmdir /sを使用する場合は、確認メッセージの時点でプログラムが停止してしまうため、/qオプションを指定することをおすすめします。
rmdir /s /qで削除したフォルダは、ごみ箱に移動されず、元に戻せません。
パスの指定を誤ると重要なデータを失うため、特に変数でパスを組み立てる場合は、値が空でないことを確認してから実行してください。
フォルダを削除する具体例
バッチファイルで作業後のフォルダを削除する
バッチファイルで一時フォルダを作成して処理を行うようなケースでは、作業が終わった後にrmdirコマンドで一時フォルダを削除します。
@echo off
setlocal
mkdir workspace
rem ...ここで作業を行う...
rmdir /s /q workspace
endlocal
一時フォルダ内にはファイルが含まれている可能性があるため、/sオプションと/qオプションを指定しています。
指定されたパスがフォルダであれば削除する
入力されたパスがフォルダであれば削除する処理は、以下のように記述できます。
@echo off
setlocal
set /p target=削除するフォルダのパスを入力してください。
if exist "%target%\" (
rmdir /s "%target%"
echo %target% を削除しました。
) else (
echo %target% はフォルダとして存在しません。
)
endlocal
if exist "パス\"のように末尾に\を付けると、ファイルではなくフォルダが存在する場合のみ条件が成立します。
また、変数名にpathを使うと、実行ファイルの検索に使われる環境変数PATHを上書きしてしまうため、targetのような別の名前を使用しています。
上記のコードを実行すると、削除するフォルダの入力と、削除の確認メッセージが表示されます。
フォルダを削除できないときは
rmdirでフォルダを削除できない主な原因は、以下の通りです。
- フォルダが空ではない:
/sオプションを指定します。 - フォルダ内のファイルを他のアプリケーションが開いている:アプリケーションを終了してから再実行します。
- カレントディレクトリが削除対象のフォルダになっている:別のフォルダに
cdで移動してから実行します。 - 削除する権限がない:管理者として実行したコマンドプロンプトで試します。