お風呂の温度、何℃にしてますか?

こんにちは。

件名通りなのですが、フォルダ内のファイルや
サブフォルダを特別な数個のファイルを残して全て削除したいのです。

残すファイルの拡張子は *.mdb です。
例を挙げると以下のような状態で、mdbファイル以外
全てのファイル、Bフォルダも全部消したいのです。

A--- 1.mdb   2.mdb aaa.txt  bbb.doc  ccc.html
|----B(フォルダ) ddd.pdf  eee.xls

拡張子を指定すれば、と思ったのですが、どんな拡張子の
ファイルが放り込まれているのかわかりません。
またフォルダもどんな名前のフォルダが作成されているか
予測できません。

全部消す & *.mdb を除く のような構文があればいいのですが
可能かどうか、可能であれば、教えていただけないでしょうか?
よろしくお願いします。

A 回答 (2件)

バッチファイルを作って実行します。



cd \A
for /r %%F in (*) do if /i "%%~xF" neq ".mdb" del "%%F"
for /r /d %%D in (*) do rd "%%D"

はじめのfor文でファイルを全部リストアップして拡張子が .mdb 以外のものを削除します。
次のfor文でディレクトリを全部リストアップして rd で削除します。.mdb ファイルが残っており空ディレクトリでなければ削除されません。エラーメッセージがでますけど気にしなければいいです。メッセージがいやなら、
for /r /d %%D in (*) do rd "%%D" 2>NUL
にすればいいです。

詳しくは、for /? や if /? 等を見てください。
    • good
    • 5
この回答へのお礼

ありがとうございました。
教えていただいた構文を利用して無事に
バッチを作成して処理することができました!

お礼日時:2006/01/20 23:20

質問の内容から想像するに、Windowsの話ですよね。



手っ取り早い方法としては、リソースキットに含まれる"forfiles"という
バッチ支援ツールを使うのが良いかと思います。

リソースキットをお持ちでなければ、類似品がダウンロードできます。

参考URL:http://www.dynawell.com/reskit/microsoft/win2000 …
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A