2016-10-16 20 views
-1

私は、特定のBATファイルをその日の異なる時刻に実行するPCを持っています。私はすべてのタスクが発生していることを確認するために、各タスクをtack.txtというログファイルに登録します。これは、それがどのように見えるか、一般的である:TXTファイルから古いログエントリを削除するBATファイル

Start Cams @ 10/09/2016 15:11:43 
Update List @ 11/09/2016 14:13:47 
EPG Update @ 11/09/2016 16:59:48 
Start Cams @ 11/09/2016 17:01:35 
Restart @ 13/09/2016 17:16:52 

各エントリが個別の行にあると提示された日付と時刻を持っています。

プロセスを整然と保つために3日以上経過したエントリを削除するBATファイルを作成することはできますか?

+0

単純なexeがそれを行います。プロセスは毎晩実行され、前日の3つのファイルを使用して前日にコピーします。表示するには、それらを連結し、希望どおりに表示します。 – kenny

+1

https://stackoverflow.comは無料のスクリプト/コード作成サービスではありません。これまでに試したこと(既に使用しているスクリプト/コードを含める)とどこにいるのかを教えていただければ、特定の問題を解決することができます。 [良い質問をするにはどうすればいいですか?](https://stackoverflow.com/help/how-to-ask)も読んでください。 – DavidPostill

+0

はい、可能です。しかし、あなたは自分の努力を示す必要があります!私たちは無料であなたのためのスクリプトを書くつもりはありません! [質問する](http://stackoverflow.com/help/how-to-ask)ここをクリックしてください! – aschipfl

答えて

0

はい。 Batch(季節/年/閏年の間の特別なケースを扱う)で昨日の日付を得るのは難しいですが、PowerShellの助けを借りれば簡単です。

次のような日付を得ることができます。そして、あなたはログを置き換えることができます

findstr "%today-2% %today-1% %today%" test.txt >matching.txt 

for /f %%a in ('"powershell [DateTime]::Now.AddDays(-2).ToString('dd/MM/yyyy')"') do (set today-2=%%a) 

その後、あなたは、このようにそれらを検索し、ファイルに出力し、一致する行をすることができますがmatching.txtのファイルはcopy /ydelです。

関連する問題