rd/rmdir - フォルダの削除

にメンテナンス済み

コマンドプロンプトやバッチファイルを扱う上で、PC 内のファイルやフォルダを操作することは多いです。

しかし、一概に削除といっても、ファイルなのかフォルダなのか、フォルダは空なのかといった条件によって、使い分けるコマンドが異なります。

ここではその中でも、フォルダを削除する方法について、基本的な使い方からオプションの設定方法まで分かり易く説明しています。

ファイルを削除するためには別のコマンドを使用する必要があるため、詳しくは以下の記事を参照してください。

フォルダを削除する方法

フォルダを削除するためには、rmdirコマンドを使用します。

省略してrdと入力しても同様の結果を得ることができます。

rmdirコマンドは、以下のように使用します。

rmdir [<ドライブレター>:]<フォルダのパス> [/s [/q]]

最も基本的な使い方は、以下のようにrmdirに続けて、削除したいフォルダのパスを指定します。

以下のコマンドは、ユーザーディレクトリ直下に作成されているtestフォルダを削除する例です。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>rmdir test

実行することで、testフォルダが削除されます。

注意点として、rmdirコマンドは、削除したいフォルダが空であることが前提となります。

空でないフォルダを削除する方法については後述します。

rmdirコマンドのオプション

rmdirコマンドには、以下のオプションがあります。

オプション説明
/s指定したフォルダ内のファイルも削除する
/q削除の確認を行わない

/sオプションを指定すると、指定したフォルダ内のファイルも削除することができます。

また、/sを指定した場合は、実行時に以下のような確認メッセージが表示されます。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>rmdir test /s
test、よろしいですか (Y/N)?

このメッセージを表示させたくない場合は、/sオプションと併せて/qオプションを指定します。

バッチファイル内でrmdirコマンドを使用する場合は、確認メッセージの時点でプログラムが停止してしまうため、/qオプションを指定することをおすすめします。

フォルダを削除する方法と具体例

バッチファイルで作業後のフォルダを削除する

バッチファイルで様々な処理を行うために、一時フォルダを作成するようなケースを考えます。

このような場合、作業が終わった後に一時フォルダを削除する必要がありますが、その際にrmdirコマンドを使用することができます。

@echo off
setlocal

mkdir workspace

rem ...ここで作業を行う...

rmdir workspace /s /q

endlocal

一時フォルダ内にはファイルが含まれている可能性があるため、/sオプションと/qオプションを指定しています。

指定されたパスがフォルダであれば削除する

バッチファイル内でユーザーからの入力を受け付け、入力されたパスがフォルダであれば削除するような処理は、以下のように記述することができます。

sample.cmd
@echo off
setlocal

set /p path=削除するフォルダのパスを入力してください。

if exist %path% (
  rmdir %path% /s
  echo %path% を削除しました。
) else (
  echo %path% は存在しません。
)

endlocal

上記のコードを実行した場合、削除するフォルダの入力と、削除の確認メッセージが表示されます。

×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>sample.cmd
削除するフォルダのパスを入力してください。test
test、よろしいですか (Y/N)? Y
test を削除しました。
C:\users\user>

練習問題

練習問題

バッチファイル中で、複数のファイルを含むフォルダを削除する場合、 後続する処理を止めることなく、フォルダとフォルダ内のファイルを全て削除するコマンドを選択してください。

回答がサーバーに送信されることはありません
#コマンドプロンプト #バッチファイル #コマンドライン #コマンド