0

1 日に 1 回、イメージ バックアップを (Windows でコマンド ラインを使用して) 実行したいと考えています。過去 3 日間のイメージを 1 つずつ保持したいので、バックアップの実行ごとに 3 つのパスをローテーションする必要があります。

c:\image0.ext // encode as 0, see text below
c:\image1.ext // encode as 1
c:\image2.ext // encode as 2

テキストファイルに0、1、または2を書き込み、その値を何らかの方法で読み取ってから、sthを実行します。(number+1) mod 2 のように、バックアップを実行し、新しい番号をテキスト ファイルに書き込みます。次に、if ステートメントを使用して、0 から 2 までの各数値をパスにリンクします。そのためのより良い/より簡単な方法はありますか? ヒントをありがとう!

4

1 に答える 1

1

imageX.extはファイルであるため、zipファイルに類似したデータの圧縮アーカイブであると思います。変更された日付は、新しいバージョンに置き換えられるたびに更新される必要があるため、最新の画像を追跡するために別のファイルは必要ありません。日付でソートされたDIRを使用して、最新の画像(最後にリストされた画像)を取得できます。

@echo off
for /f "delims=" %%F in ('dir /b /od c:\image?.ext') do set lastImage=%%F
set /a nextImage=(%lastimage:~-5,1%+1)%%3
set nextImage="c:\image%nextImage%.ext"

最後の画像が撮影された後、誰かがあなたのファイルマスクに一致する別のファイルを作成すると、このアルゴリズムは機能しなくなります。

于 2012-04-12T15:35:28.907 に答える