• ベストアンサー

コマンドプロンプトでの削除

D:\aaaaa このフォルダ内に複数のフォルダとファイルがあります。 aaaaaフォルダは残して、中のフォルダとファイルを全て削除したいです。 del /f/s/q D:\aaaaa\* だとファイルしか削除されません。 rd /s/q D:\aaaaa\ だとaaaaaフォルダごと削除されてしまいます。 aaaaaフォルダ内のフォルダは決まったフォルダではなく実行ごとに名前の違うフォルダがあります。 名前を指定してのフォルダ削除ではなく、aaaaa内の全てのフォルダとファイルを 削除するにはどうしたら良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.3

類似の質問に回答したことがあります。バッチファイルを作成する方法です。 http://okwave.jp/qa/q4442349.html のベストアンサーをご確認下さい。 ご質問の例だと、以下のようになります。 pushd D:\aaaaa del *.* for /D %%f in ( * ) do rmdir /s "%%f"

okum2
質問者

お礼

pushdでフォルダ移動すればよかったのですね。 ありがとうございました。

その他の回答 (3)

  • 8ive22ty
  • ベストアンサー率52% (770/1479)
回答No.4

No.1 さんのが正解に決まっています。(理由は「注記」参照) バッチ処理や for コマンドを使うまでもありません。 コマンドは継続扱いにすれば(&& or &)一行で処理できますので、つぎのようになります。 && or & はコマンド処理の基本です。 rd /s/q d:\aaaaa && mkdir d:\aaaaa &&は「正常終了後継続」を意味します。 & だけの場合は「終了後継続」なので無条件にフォルダを作成します。 ※更新が入りますので「管理者として実行」する必要がある場合があります。 ※コマンドの理由ではなくて、ファイルやフォルダによってはアクセス拒否の場合がありますので、セキュリティの問題は無い状態で処理してください。 ---「注記」 del はファイルの削除なのでファイルしか削除されません。 rd はフォルダの削除ですのでフォルダごと削除されてしまいます。 windowsには「指定したフォルダ内のファイルのみと傘下のフォルダおよびフォルダ内のファイルを削除する」というコマンドはありません。 コマンドを組み合わせれば、同じ機能が実行できるからです。

  • sknbsknb2
  • ベストアンサー率38% (1158/3030)
回答No.2

今回の案件ではANo.1さんの回答で必要十分だと思いますが、検索してみたらforを使う方法が紹介されていました。 参考URLをご覧になるとわかりますが、こちらの方法はより汎用性が高いです。

参考URL:
http://okwave.jp/qa/q1178990.html
okum2
質問者

補足

リンク先のNo.4を参考にしましたが、コマンドでdirの参照するフォルダをフルパスにしても dirで表示されるのはフォルダだけなので、指定されたファイルが見つかりません。 と出て、フォルダが削除できません。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

フォルダごと削除した後、フォルダを作り直せばいいと思う。 …ダメ?

関連するQ&A