0

ディレクトリのバックアップ バッチ スクリプトを作成する必要があります。10分ごとに更新されます。ディレクトリに追加された、または最後のバックアップ後に変更されたファイルのみを更新したいと思います。

このスクリプトを使用しようとしました:

@ECHO OFF
SET srcdir=D:\Source
SET tgtdir=D:\Target
SET /A topcnt=3
SET /A cnt=0
FOR /F "tokens=*" %%F IN ('DIR /A-D /OD /TW /B "%srcdir%"') DO (
  SET /A cnt+=1
  SETLOCAL EnableDelayedExpansion
  IF !cnt! GTR !topcnt! (ENDLOCAL & GOTO :EOF)
  ENDLOCAL
  COPY "%srcdir%\%%F" "%tgtdir%"
)

私が抱えている問題は、バッチ ファイルがあるディレクトリでのみ機能することです。これは、バッチ ファイル自体を含む最新の 3 つのファイルを返します。また、コピー機能が動作しません。プログラムは srcdir をファイル拡張子に接続していないため、プログラムはコピーするファイルを決定できません。お知らせ下さい。

4

1 に答える 1

0

あなたのコードが、質問の最初の段落に記載されている目標にどのように関連しているかわかりません。あなたの目標があなたが述べたように本当に単純であれば、バッチ ファイルは必要ありません。次のコマンドを 10 分ごとに実行するようにスケジュールするだけです。

xcopy /d D:\Source\* d:\Target

上記のコマンドは、新しいファイルまたは最後のバックアップ以降に変更されたファイルのみをコピーします。

バックアップ要件がより複雑になる場合は、おそらく ROBOCOPY に切り替える必要があります。それはおそらくあなたのニーズを満たす豊富なオプションを持っています. まだバッチは必要ありません。

于 2012-07-25T01:19:19.813 に答える