- ベストアンサー
古いファイルだけを消したい
以下の用件のバッチファイルを作る場合、 どういったプログラミングをすればよいでしょうか。 1.対象ディレクトリには毎日ファイルが作成される。 2.ドライブ容量を圧迫するため、定期的(ここでは一ヶ月前とする)にファイルを削除したい。 今のところ考えた方法は、 1.作成日付がシステム日付より一ヶ月前のものを抽出、削除する。 2.一ヶ月前の時点でディレクトリ内容をテキストファイルに出力する。そして現時点のディレクトリ内容と比較し、一致する部分を削除する。 1.は「DEL」にそういった機能がありませんでした。 2.は比較するところまではよかったのですが、結局差分は新しいものしか出てこないので、意味がありませんでした。 バッチファイルだけでなくフリーソフトでもかまいません、 解決いただける方、回答をお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBScriptで書かれた delold.vbsというツールを使っています。いろいろオプションがあり便利。 http://www.kawabata.com/delold.asp 注意点としては、デフォルトでは削除せずに該当ファイル名を表示するだけなので、必ず /d オプションを付けること。 あるいは、「新しい方から30個残して、それより古いファイルを削除する」でいいなら、バッチでも簡単です。 pushd 対象ディレクトリ for /f "skip=30 delims=" %%F in ('dir /b /o-d') do del "%%F" あるいは、ファイル名が、log20100304.txt のように年月日を含んでいるなら、それをもとに判断して消すこともバッチで出来ます。
その他の回答 (1)
- Kotori_D
- ベストアンサー率36% (54/149)
VBSでならそういったものが作れます。 メモ帳から作れるので簡単です。 ただ、VBSの基礎をご存じないと敷居が高い間も知れません。 私は以下のサイトを参考にして作成しています。 http://www.kanaya440.com/contents/script/index.html ちなみに参考URLは「VBS 古いファイルの削除」でググったら出てきたフリーソフトです。 落とせるか見てませんが、検索すれば大量に出てきそうですよ?
お礼
VBSですか、なるほど。 少々知識がいるようですが、この際ですので教養として身につけたいと思います。 ソフトも適当なものが見つかりそうです。 ありがとうございました。
お礼
ソフトの紹介ありがとうございます。 大変便利そうで助かります。 for文を用いれば、そういったこともできるのですね。勉強になります。 ファイルには残念ながら日付がないので、 前者の方法か、VBSのソフトを使いたいと思います。