2016-04-24 11 views
0

現在、タスクスケジューラとxcopyを使用してバッチファイルを使用して、デスクトップのフォルダを別のフォルダに6時間ごとにバックアップしています。たとえば、12回前のバックアップより前のバックアップを削除するにはどうすればよいですか?たとえば、12個のバックアップがあり、それが次の6時間のマークである場合、ソースフォルダをバックアップしてから最も古いバックアップを削除します.13があるので、12だけです。これが繰り返されるので、バックアップが繰り返されます。タスクスケジューラを使用して、フォルダをバックアップして古いバックアップを削除する方法

マイフォルダはそうのようにフォーマットされています:YYYY-MM-DD_HHMM

(24時間形式)

答えて

1

あなたは非常に明確ではありませんでした。仮定すると、バックアップはfor /fににこれを入れて

BackupYYYYMMDD

dir /b /ad /o-n backup*があなたのbackupfoldersを与えます(名前(最新で開始する逆転)*によって並べ替え、簡単な形式、ディレクトリのみ、)のようなものをという名前のフォルダです出力はOKと思われるとき、ECHOを削除

for /f "skip=12 tokens=*" %%i in ('dir /b /ad /o-n backup*') do ECHO rd /s /q %%i 

:で、その結果、12行をスキップして出力を解析します。

*)あなたはYYYY-MM-DD_HHMMような名前backupfoldersのために別のdateformat、より有効に活用/o-d(新しい順、日付順)

を持っている場合は、他のフォルダがカウントまたは影響を受ける可能性を最小限に抑えるためにdir /b /ad /o-n ????-??-??_????を使用することができます。

+0

完璧に動作するようですね、ありがとう! –

関連する問題