1

いくつか調べてみましたが、正確なコードが見つかりません。私が持っているのは、リモートの場所にバックアップされた一連のサーバー バックアップです。このリモート ロケーション サーバーに対して毎晩実行され、保持する必要がある日数に基づいてファイルを削除する Windows スクリプトを用意する方法が必要です。

毎晩、%random% タグを使用した一意のファイル名でスクリプト ベースのバックアップが実行されます。たとえば、過去 20 日間分のバックアップを保持し、残りを削除する必要があります

「forfiles」を見ましたが、すべてのサブフォルダー内で一定の日数が経過すると、すべてのファイルが削除されます。

特定のフォルダー内のメイン フォルダー (ディレクトリ) の日付を確認する単純なスクリプトが必要です。日付に基づいて、そのフォルダーとすべてのサブフォルダーを削除します。

前もって感謝します

4

2 に答える 2

0

各バックアップが 1 つのフォルダーにあると仮定すると、これにより、最新の 20 フォルダーがスキップされ、残りが削除されます。rd コマンドを有効にするには、echo キーワードを削除します。

/t:c を DIR コマンドに追加して、フォルダーの作成時間を使用できます。DIR /? を参照してください。オプション用。

@echo off
pushd "d:\backup" && (
for /f "skip=20 delims=" %%a in ('dir /a:d /o:-d /b') do echo rd /s /q "%%a"
)
pause
于 2013-05-03T16:55:48.787 に答える
0

forfilesif チェックと組み合わせて使用​​する

次のようなステートメントが必要です

ForFiles /P "PATH TO FOLDERS" /D -20 /C "CMD /C if @ISDIR==TRUE rmdir @FILE"

于 2013-05-03T16:10:16.497 に答える