rd (rmdir)

ディレクトリを削除できます。

構文

rd [/s] [/q] [ドライブ:]パス

オプション

オプション 機能
/s 指定されたディレクトリに加えて、そのディレクトリ内のすべてのディレクトリとファイルを削除します。ディレクトリ ツリーを削除するときに使用します。
/q /S を指定してディレクトリ ツリーを削除するときに、確認のメッセージを表示しません。(QUIET モード)

対象のディレクトリが空ではないときに、

c:\>rd sample

とすると「ディレクトリが空ではありません。」と出力されます。このとき「/s」オプションを指定して、

c:\>rd /s sample

とすると「sample、よろしいですか (Y/N)?」と削除の確認を求められます。このとき、さらに「/q」オプションも指定して、

c:\>rd /s /q sample

とすると、確認なく削除されます。

利用例

すべての空ディレクトリの削除

カレントディレクトリ以下の空ディレクトリを、すべて削除します。

for /f "delims=" %d in ('dir /ad /b /s ^| sort /r') do rd "%d"
command line - Recursively delete empty directories in Windows - Super User

処理内容としては、まず

dir /ad /b /s

で、カレントディレクトリ以下のディレクトリの一覧を生成します。そして

sort /r

とすることで、それを降順に並べ替えます。これは空ディレクトリだけを含むディレクトリを削除できるようにするためです。

そして作成されたディレクトリの一覧をforの/fオプションで分解し、それを順にdoコマンドに渡していきます。このとき"delims="としているのは、名前に空白を含むディレクトリに対処するためで、空白を区切り文字とみなさないようにしています。

あとはdoコマンドで渡されたディレクトリを、rdコマンドで1つずつ削除します。このコマンドは/sオプションを指定しない限り空ではないディレクトリを削除しないため、結果として空ディレクトリのみを削除できます。