dポイントプレゼントキャンペーン実施中!

D:\aaaaa
このフォルダ内に複数のフォルダとファイルがあります。
aaaaaフォルダは残して、中のフォルダとファイルを全て削除したいです。

del /f/s/q D:\aaaaa\*
だとファイルしか削除されません。

rd /s/q D:\aaaaa\
だとaaaaaフォルダごと削除されてしまいます。

aaaaaフォルダ内のフォルダは決まったフォルダではなく実行ごとに名前の違うフォルダがあります。
名前を指定してのフォルダ削除ではなく、aaaaa内の全てのフォルダとファイルを
削除するにはどうしたら良いでしょうか?

A 回答 (4件)

類似の質問に回答したことがあります。

バッチファイルを作成する方法です。

http://oshiete.goo.ne.jp/qa/4442349.html のベストアンサーをご確認下さい。
ご質問の例だと、以下のようになります。

pushd D:\aaaaa
del *.*
for /D %%f in ( * ) do rmdir /s "%%f"
    • good
    • 4
この回答へのお礼

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

お礼日時:2011/05/13 15:20

No.1 さんのが正解に決まっています。

(理由は「注記」参照)
バッチ処理や for コマンドを使うまでもありません。

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

今回の案件ではANo.1さんの回答で必要十分だと思いますが、検索してみたらforを使う方法が紹介されていました。



参考URLをご覧になるとわかりますが、こちらの方法はより汎用性が高いです。

参考URL:http://oshiete.goo.ne.jp/qa/1178990.html

この回答への補足

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

補足日時:2011/05/13 13:08
    • good
    • 0

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



…ダメ?
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!