アプリ版:「スタンプのみでお礼する」機能のリリースについて

バッチファイルを、ここ数か月業務で使うことになり、利用しております。
PowerShellか、バッチファイルでできれば機能を実装したいと考えています。

今回、実装したい機能
○フォルダ内の[*.log]について順次、更新日時を判別し、最新のファイル以外を削除を自動実行できるようにする。

[前提条件]
1.1個、もしくは複数の更新日付が異なるファイルがログファイルとして入っているフォルダである。(各ファイルの更新日時に規則性がない)

2.ログファイルは、ファイル自体の移動や名称変更などをせず、基本的にフォルダの中に置いておく。(別フォルダにコピーして処理することなどは可)

3.ログファイルは、最新ファイルについては、書き込みが行われている可能性もある。(機械が動いていた場合)

4.ログファイルは、テキストデータ。

※ファイル内の順次処理については、For文でやろうと思ってます。
環境変数で最新の更新日時を取得するのに、FORを1回回して、
そのあとに、その更新日時と比較してそれ以前のファイルを削除する以外に方法ないかと思ってますが、他に良いやり方ないでしょうか?

A 回答 (1件)

あらかじめログファイルがデータベースなどに登録されていない限りは、


For文は必須だと思います。

For文実行後に一括削除でもいいと思いますが、
Whileループで2つのファイルを比較して、
「ファイルが一つになるまで
比較するたびに古い方を削除」でもいいと思います。

ログファイルへの書き込みが行われている場合に、
更新日時が確認できないとしても、
ログファイルが最新のもの1つしかないことを、
人間が確認する前に削除してしまうことができれば問題なさそうですね。
    • good
    • 2
この回答へのお礼

ありがとう

なるほど、whileで比較削除ですね。やってみます!

お礼日時:2019/12/17 07:51

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