【bat基礎】フォルダ削除する方法!エラー解消法あり

PC

batファイルでフォルダ削除したい時に動かなくて困った事はありませんか?

サブフォルダまで削除したり、強制的にフォルダ削除したいなどの要望はありませんか?

ワイルドカードを使用して複数のフォルダ削除したいけどできるのかな。と言った疑問はないでしょうか?

そんなbatのフォルダ削除に関する疑問を、現役エンジニアの筆者が全て解決します。

windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やアプリやWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。

この記事を読めばbatのフォルダ削除について、完璧に理解できます。

目次

batでフォルダ削除する方法

フォルダ削除

batでフォルダ削除するコマンド

batでフォルダを削除するコマンドを以下にまとめます。

rmdir フォルダ名

これでフォルダ削除する事ができます。

また省略形の以下でも同じフォルダを削除できます。

rd フォルダ名

どちらか好きな方でフォルダ削除を行いましょう!

実践:batでフォルダ削除する

では実際にbatでフォルダ削除してみましょう!

環境としては下の図のような構成です。

batでフォルダ削除

batファイルと同じ階層にサブフォルダのない「test_dir1」、サブフォルダありの「test_dir2」、「test_dir3」が存在します。

以下のbatファイルを実行してフォルダ削除します。

@echo off

echo 削除
rd test_dir1
pause
削除
続行するには何かキーを押してください . . .

フォルダ環境を見てみると「test_dir1」が削除されています。

batでフォルダ削除

batでフォルダ削除が失敗する時の原因と対処法

エラー

フォルダ削除しようとした時に「ディレクトリが空ではありません」のメッセージが出てフォルダ削除できない事があります。

その原因としてはサブフォルダやフォルダ内にファイルが存在する事です。

先程の環境で以下のbatファイルを実行してみます。

@echo off

rem サブディレクトリがあれば削除しようとしてもできない
rd test_dir2
pause

実行した結果は以下となりました。

ディレクトリが空ではありません。

削除できていません。

対処法としてはオプションを付ける事で解消できます。

batでサブフォルダまで削除する方法

サブフォルダまで削除するコマンド

ではサブフォルダまで削除するオプションをご紹介します。

rmdir /s フォルダ名

/sオプションを付ける事でサブフォルダまで削除する事が可能です。

実践:サブフォルダまで削除する

先程の環境で以下のbatファイルを実行してみます。

@echo off

rem sオプションで確認ありでサブまで削除
rd /s test_dir2
pause

実行してみた結果は以下となりました。

test_dir2、よろしいですか (Y/N)? y
続行するには何かキーを押してください . . .

確認プロンプトが表示されて「y」を入力してエンターします。

サブフォルダごと削除できました。

batでフォルダ削除

batで強制的にサブフォルダまで削除する方法

スクリプト

強制的にサブフォルダまで削除するコマンド

サブフォルダまで削除する方法を教えました。しかし/sオプションだと「フォルダを削除してよろしいですか」と確認プロンプトが表示されて止まってしまいます。

batファイルで自動化したいのに止まっては困る事もあるでしょう。

そんな時は強制的にフォルダ削除するオプションを使用します。

rmdir /s /q フォルダ名

/qオプションを使用する事で強制的に削除する事が可能です。

実践:強制的にサブフォルダまで削除する

では先程の環境で以下のbatファイルを実行します。

@echo off

rem sオプションで確認なしで強制サブまで削除
rd /s /q test_dir3
pause

実行結果は以下となりました。

batでフォルダ削除

確認プロンプトが表示されることなく強制的にフォルダ削除する事ができました。

番外編:batでフォルダ削除する時にワイルドカードを使ってみる

training
ワイルドカードで複数フォルダ削除できるか確認したい犬

複数のフォルダをワイルドカードを使用して削除する事は可能なのでしょうか?

管理人

では実際に試してみましょう!

以下の環境で以下のbatファイルを実行してみます。

batでフォルダ削除
@echo off

rd *
pause

実行した結果です。

ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
続行するには何かキーを押してください . . .

batでワイルドカードを使用して複数のフォルダ削除はできませんでした。

PC

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次