• 締切済み

削除バッチ方法を教えてください

Aフォルダの中のあるファイルのみを残し、他のファイルを削除するバッチorDOSコマンドを教えてください? ログファイルを削除するために上記のような仕様でバッチ作成したいのですが、いろいろと調べていますが、わかりません。 ファイル名を見て削除したいと考えています。 ログのファイル形式は、年日付時刻ABCファイルとなり、当日と前日のログだけを残して、他のログを削除したいのですが、、、 宜しくお願いします。

みんなの回答

  • jx-word
  • ベストアンサー率40% (38/94)
回答No.3

ファイル名をチェックするとなかなか手強いですが、ファイル自体の日時で判別すると比較的簡単です。 下記は*.logファイルの内、一番新しい2つのファイルの残して他は消すという処理です。 (バッチファイル内なら%aは%%aに置き換え) for /f "skip=2 tokens=*" %a in ( 'dir /o-d /b *.log' ) do del "%a" 後は適当に環境に合わせて修正してください。 なお、このような自動削除系の処理は内容をよく理解した上で扱ってください。

  • ma0309
  • ベストアンサー率0% (0/0)
回答No.2

質問者さんはおそらく毎日自動でバッチ処理したいと思っておられるのだと思いますが、A No.1 さんの方法だと毎回日付を入力しないといけないので 自動での処理は難しいと思います。 http://www.mtzk.com/soft/ に dxcopy と言う日付の部分を自動的に生成して xcopy を起動するコマンドがありますので、A No.1 さんの方法の xcopy の所を dxcopy に置き換えたら何とかなるのではないでしょうか。 たしかオプションの指定で前日のファイルもコピー出来たと思います。 私はこれで会社のサーバーのバックアップを取ってます。 もう少しスマートな方法を紹介できれば良かったのですが、とりあえず今すぐに思いつくのはそんな所です。

参考URL:
http://www.mtzk.com/soft/dxcopy.txt
  • 245689731
  • ベストアンサー率22% (76/341)
回答No.1

>ログのファイル形式は、年日付時刻ABCファイルとなり、   ファイル名などの形式がちょっとハテナなのですが以下のような感じでしょうか?   md z:\new xcopy z:\old z:\new /d:9-1-2007 del z:\old\*.* copy z:new\*.* z:\old del z:\new\*.* md z:\new ドライブが[z]としてそこに[new]というフォルダを作ります。 xcopy z:\old z:\new /d:9-1-2007 同一ドライブ上の[old]フォルダから[new]フォルダへ上記の場合2007.9.1以後の日付 ファイルをコピーします。 del z:\old\*.* [old]フォルダにあるファイルを全て削除します。 copy z:new\*.* z:\old [new]フォルダから[old]フォルダへファイルをコピーします。 del z:\new\*.* [new]フォルダ内の全ファイルを削除します。 あなたのドライブ構成やフォルダ構成が判りませんので環境に合わせてみてためして ください。バッチファイルと言うことなのである程度の力量のあるユーザー様として 回答しています。これを使って必要なデータまで消えても責任は持てませんので自己 責任でお願いします。 多少、回りくどいようなコマンドになっています。

関連するQ&A

  • バッチファイルについて

    現在、ログ世代管理バッチファイルを作成していますが、 方法は、日付ごとに作成されたログフォルダからシステム日付より365日以降のフォルダを削除するといったものです。 しかしながら、どうしてもフォルダ(日付)の比較方法が上手くいきません。365日前のフォルダを削除する事はできるのですが、365日以降のフォルダの削除ができません。 詳しい方がいましたら、お教えねがえないでしょうか? 宜しくお願い致します。

  • バッチファイルで定期的にファイル削除を行う方法

    windows2003サーバーでテキストファイルにプログラムの処理結果を記述させています。 そのログファイルを1日に1回削除するバッチファイルを作成しようと考えています。 以下のような動きをするようにするにはどのように記述したら良いのでしょうか。(ログファイルの名前をlog.txtとします。) 1,log.txtを削除 2,0キロバイトのlog.txtを作成 「log.txtを削除」はdelコマンドでできますが、「0キロバイトのlog.txtを作成」でファイル新規作成のコマンドがわかりません。 もし分かる方がいましたら教えてください。

  • バッチで特定のファイルを消す方法と日付の計算

    いつもお世話になっております。 バッチの作成方法について教えてください。 tmpフォルダには日々ログファイルが作成されていきます。 ログファイルのファイル名はバラバラですが、必ず20140527のように yyyymmddの日付が入っています。 3日前のログはもう不要なので、削除したいのです。 (1)本日より3日前の計算はどのようにしたらよいでしょうか? (2)3日前の日付が入っているファイル名を削除するにはどのようにしたらよいでしょうか? 具体的にプログラムを書いて教えていただけないでしょうか。 お手数をおかけしますが、よろしくお願いします。

  • バッチファイルで古いフォルダを削除する方法

    バッチファイルを利用して条件のあったフォルダを削除したいと考えています。 フォルダ郡は「20091020」「20090720」など作成された日付がそのまま 名前になっています。 自動的に作成するバッチは既にあるのですが、現状このままですと 増える一方になってしまいます。 そこで3ヶ月以上前(今日よりマイナス90日) などの条件に合致したすべてのフォルダを削除する記述を 現在のバッチファイルに追加したいのですが、記述方法が分かりません。 ご存知の方いらっしゃいましたらお力をお貸しください。 よろしくお願いいたします。

  • Windowsで、古いログファイルを削除するバッチを作成したいです。

    Windows2003システムで、ある1つのディレクトリの中で一定期間を経過した古いログファイルを削除するようなバッチを急遽作ることになりました。でも、バッチファイルの作成の経験がなく苦戦しています。。 フリーのツール等は使用不可で、なんとかバッチで作りたいのですが、どなたか助けてください(>_<) ちなみに、ファイル名はこのような形です。 abc20071106.log abc20071107.log... 同じディレクトリ内には、上記ファイル以外のファイルも存在します。

  • ImageMagickでのバッチファイル作成方法

    ImageMagickでの処理を簡単にするためにバッチファイルを 作成しよう思います。 最初動くかどうかを確かめるために convert abc.jpg abc_1.png と記述したバッチファイルをabc.jpgの格納してあるフォルダで 実行したのですがうまく回りません。 コマンドプロンプトで上記を実行するとうまくいきます。 バッチファイルをどのように書き直せばうまくいくのでしょうか? ご教示の程よろしくお願い致します。

  • バックアップ用バッチファイルの作成方法

    作業用フォルダを日次でバックアップを取るバッチファイルを作成し、それをスケジューラーに登録して自動でバックアップを取れるようにしようと思っています。 下記のようなルールでバッチファイルを作成しようと考えていますが、バッチファイルの作成に詳しい方がいらっしゃったら教えていただけないでしょうか? --- (1)バックアップ作成時は、指定のフォルダをZIP形式で圧縮してバックアップをとる (2)サブフォルダ内のOLDフォルダ内のファイルはバックアップ対象外 (3)ファイル名はYYYYMMDD.zipとして保存 現在、winzipというZIP用のアプリケーションを使用しており、wzzipというコマンドでコマンドライン上から圧縮が可能なので、それを使用したいと思っています。 一旦OLDフォルダを除いたものをテンポラリフォルダに入れて、それを圧縮(環境変数か何かから日付を持ってきて、ファイル名を指定して)するのがいいのかなとは考えているのですが、実際のコマンドの書き方がわかりません。 ご存知の方がいらっしゃいましたら、よろしくお願い致します。

  • ご教授ください。(Windows バッチコマンド)

    よろしくお願いします。 ここのところ質問ばかり申し訳ありません。 自分の頭の悪さに泣いております・・・。 以下のバッチファイル(Windows2000)を 作成できればと検討中です。 もし宜しければご教授願えますでしょうか。 さっぱり分かりません。 Q1. あるアプリケーションが出力するログがあります。 このログを2世代管理したいと考えています。 1日目に出力されたログを abc.log とすると、 2日目のアプリケーションの起動時にこの「abc.log」 を「abc.日付」にコピーし、「abc.log」の内容を クリアし、2日目のアプリケーションのログを 書き出せるようにする。 3日目のアプリケーションの起動時に「abc.log」を 「abc.日付」にコピーし、「abc.log」の内容の クリアと2日目に作成した「abc.日付」(内容は1日目 のログ)を削除する。 Q2. この曜日ならこの処理をする。 というように、曜日で処理を分岐させる。 どうぞ宜しくお願い致します。

  • バッチファイルの作成方法

    バッチファイルの初心者です。 下記のようなバッチを作成したいと思っています。 (1)本日の日付のディレクトリを作成する。 (2)そのディレクトリに数時間毎に作成される***.logを全て移動する。 (3)3日前に作成したディレクトリを削除する。 以上のような流れのバッチファイルは簡単に作成できるのでしょうか?

  • バッチ作成についてご教示願います。

    当方、現在大学2年の学生です。大学の課題でわからない箇所があり、困っております。 課題は情報系の講義で以下のような感じです。 「A~Cの各店舗のフォルダから1か月より前のファイルを月次で自動的に削除するバッチを作成せよ。」 A店舗フォルダ B店舗フォルダ C店舗フォルダ 以上の3フォルダにはそれぞれ 1日ごとの売り上げファイルが格納されている。 それらの売り上げファイルで 1か月以上前のファイルを自動的に削除する。 例えば、削除日が毎月の1日だとする。 10月1日になったら、9月1日から以前のファイルを削除する。 そして、消したファイルの名前と削除した日付をログにを残す。 ファイル名は「SaleA_20091001.log」みたいな感じです。 必要な機能としては、 ・それぞれの各フォルダ内のファイルがなくなるまで検索する(for文?) ・1か月以上前のファイルであるかどうか条件分岐する(if文) ・1か月以上前のファイルであれば、削除する。 以上の3つが主な機能だと考えています。 バッチはWindowsのコマンドプロンプトで作成しようと思っています。 バッチ作成は今回が初めてなので、なかなかイメージしづらくて困っております。 どなたか、ご教示願えますでしょうか。 よろしくお願いします。