• ベストアンサー

バッチファイルについて

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

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

  • ベストアンサー
  • timber
  • ベストアンサー率29% (218/739)
回答No.3

フォルダ名は数字のみ8桁(yyyymmdd)とします。 rem カレントディレクトリ変更(フルパス指定ではうまくいきませんでした) c: cd temp rem システム日付取得 for /f "tokens=1,2,3 delims=/ " %%i in ('date /t') do set sys_date=%%i%%j%%k rem 1年前の日付を取得 set /a cmp_date=sys_date-10000 rem カレントディレクトリ配下の2で始めるディレクトリ名をリストアップ for /D %%f in (2*) do call :sub1 %%f %cmp_date% exit :sub1 set cmp_dir=%1 set ref_dir=%2 if %cmp_dir% LEQ %ref_dir% rmdir %cmp_dir% goto :EOF

yoshio_n
質問者

お礼

ありがとうございました。 思っていることが実現できました。

その他の回答 (2)

  • timber
  • ベストアンサー率29% (218/739)
回答No.2

Win9*系とWinNT系で使えるコマンドが違ってきますので 使用しているOSも教えてください。

yoshio_n
質問者

補足

OSはWin2000またはXPです。

  • epson01
  • ベストアンサー率12% (120/933)
回答No.1

そのバッチファイルを掲載できますか?

yoshio_n
質問者

補足

掲載はご勘弁ください。

関連するQ&A

  • バックアップ(世代管理)機能のバッチファイルを作成したい

    バッチでバックアップファイルを作成したいです。 機能は下記のとおりです。  ・バックアップを毎営業日(平日)とる  ・3世代保存する  ・バックアップ処理成功後、最も古いバックアップを削除する まず、システム日付を取得して、YYYYMMDDフォルダを作成し、その配下に保存したいのです。 でもYYYYMMDDフォルダの作成方法がわかりません。 次に、システム日付より3日以上古い日付を見つけて、該当するものがあったら削除するようにしたいです。 書籍やこのサイトでいろいろ調べているのですが、わからなくて・・・。 このサイトではバッチではシステム日付YYYYMMDDでディレクトリを作成することは出来ない・・・という回答がありましたが、やはり不可能なのでしょうか? ご回答いただきたくよろしくお願いします。

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

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

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

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

  • DOSコマンドで指定日数よりも過去のフォルダを削除

    サーバ上のログファイルを日毎に次のようなフォルダにまとめて管理しています。 (ログフォルダは翌朝のDOSバッチジョブでBACKUP_(処理日付)のフォルダを作成してその下に*.*指定で全てのファイル(除 フォルダ)を移動して作成します。) 例. BACKUP_20041130 BACKUP_20041129 BACKUP_20041128    ・    ・    ・ BACKUP_20040311 BACKUP_20040310 このフォルダを処理日付から数えて90日より古いものを削除するDOSコマンドバッチファイル(日次実行)を作成したいです。 プログラムを作成すればこれを実現するのは可能なんですが、なんとかDOSコマンドだけでこの仕組を作りこめないものでしょうか? ご存知の方がいらっしゃったら教えて下さい。

  • バッチファイルの作成

    お世話になっております。 バッチファイルの作成方法について、只今勉強中です。 現在、毎日行われている作業をバッチファイルで自動化が出来ないか検討しておりますが、バッチファイルの編集に苦戦していて困っております・・・ ---実行したい事--- 0.以下、作業の流れをコマンドプロンプト上で表示する。 1.C:\ツール\batというフォルダに移動する。 2.batフォルダに新しく「file」というフォルダを作成 3.batフォルダ内には「bat_YYYY/MM/DD.txt」という日付のテキストがあり、該当する日付のテキストをコピーしてfileフォルダへ貼り付ける。 4.fileフォルダへ移動する。 ---終了--- 手順を全部書いてしまっているのですが、途中まではバッチファイルの編集をする事が出来ました。しかし、正解しているか不安です。 ご教授の程、宜しく御願い致します。

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

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

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

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

  • バッチファイルの日付計算が出来ません

    毎月1回実行するバッチファイルがあります。 このバッチファイルは、あるプログラムのログを退避するバッチファイルなので 月に2度以上実行させないようなチェックを入れたいと考えています。 たとえば、 最初に実行する時は、バッチファイルの中で日付を持たせたファイルを出力しておき 2度目の実行時は、日付のファイルを読み込んで1ヶ月以上たっていなければエラーとする ・・・といった事をやりたいのですが、やり方がわかりません。 日付ファイルの出力は、 echo %DATE:/=% >D:\datecheck.log とすれば良いことはわかるのですが、 日付を比較する方法はどうすれば良いでしょうか。 単純にset /Aで引き算をしてしまうと 20100207-20100131=76となってしまいます。。 どうか皆さん、よろしくお願いします(;o;)

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

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

  • 【バッチプログラム】フォルダ内のファイル名から削除対象を決める

    OS:XP_SP3 TESTフォルダには、日付が頭についたTXT形式のファイルがあります。(例:20091011_XXXXX.txt) バッチを使用して、今日から30日前のファイルの削除を自動化したいと思っています。 ファイル名と現在日付を比較して削除対象を指定することができるのではないと思っています。 どうかご教授お願い致します。

専門家に質問してみよう