rd/rmdir - フォルダの削除
コマンドプロンプトやバッチファイルを扱う上で、PC 内のファイルやフォルダを操作することは多いです。
しかし、一概に削除といっても、ファイルなのかフォルダなのか、フォルダは空なのかといった条件によって、使い分けるコマンドが異なります。
ここではその中でも、フォルダを削除する方法について、基本的な使い方からオプションの設定方法まで分かり易く説明しています。
ファイルを削除するためには別のコマンドを使用する必要があるため、詳しくは以下の記事を参照してください。
フォルダを削除する方法
フォルダを削除するためには、rmdir
コマンドを使用します。
省略してrd
と入力しても同様の結果を得ることができます。
rmdir
コマンドは、以下のように使用します。
rmdir [<ドライブレター>:]<フォルダのパス> [/s [/q]]
最も基本的な使い方は、以下のようにrmdir
に続けて、削除したいフォルダのパスを指定します。
以下のコマンドは、ユーザーディレクトリ直下に作成されているtest
フォルダを削除する例です。
実行することで、test
フォルダが削除されます。
注意点として、rmdir
コマンドは、削除したいフォルダが空であることが前提となります。
空でないフォルダを削除する方法については後述します。
rmdir
コマンドのオプション
rmdir
コマンドには、以下のオプションがあります。
オプション | 説明 |
---|---|
/s | 指定したフォルダ内のファイルも削除する |
/q | 削除の確認を行わない |
/s
オプションを指定すると、指定したフォルダ内のファイルも削除することができます。
また、/s
を指定した場合は、実行時に以下のような確認メッセージが表示されます。
このメッセージを表示させたくない場合は、/s
オプションと併せて/q
オプションを指定します。
バッチファイル内でrmdir
コマンドを使用する場合は、確認メッセージの時点でプログラムが停止してしまうため、/q
オプションを指定することをおすすめします。
フォルダを削除する方法と具体例
バッチファイルで作業後のフォルダを削除する
バッチファイルで様々な処理を行うために、一時フォルダを作成するようなケースを考えます。
このような場合、作業が終わった後に一時フォルダを削除する必要がありますが、その際にrmdir
コマンドを使用することができます。
@echo off
setlocal
mkdir workspace
rem ...ここで作業を行う...
rmdir workspace /s /q
endlocal
一時フォルダ内にはファイルが含まれている可能性があるため、/s
オプションと/q
オプションを指定しています。
指定されたパスがフォルダであれば削除する
バッチファイル内でユーザーからの入力を受け付け、入力されたパスがフォルダであれば削除するような処理は、以下のように記述することができます。
@echo off
setlocal
set /p path=削除するフォルダのパスを入力してください。
if exist %path% (
rmdir %path% /s
echo %path% を削除しました。
) else (
echo %path% は存在しません。
)
endlocal
上記のコードを実行した場合、削除するフォルダの入力と、削除の確認メッセージが表示されます。