2017-02-17 8 views
0

私のNASサーバへのコピーアウトルックデータは、1回目の&の14日に2回/月ごとに必要となり、ユーザーがWindowsにログオンするとファイルをコピーします。現在の日付と変更日のデータベースをコピーするバッチスクリプト?

ソースからNASサーバーにコピーします。

これは私の考えです!

If (current date = 1 or 14) & (date modified at Source <> date modified at Des) 
{ 
do your_batch_file.bat 
} 
else 
    exit 

誰か助けてもらえますか?あなたは大変です!

+0

ここで、Outlookデータはありますか?クライアントコンピュータでは?それをサーバーにも送信する必要がありますか?または彼らはあなたのサーバーにあり、コピーが必要ですか? – reza

+0

これはクライアントコンピュータにあります。私は与えられた日付に自動コピーファイルが必要です。 –

+0

クライアントコンピュータの電源が入っていることをどのように知っていますか?コンピュータがその日付に利用できない場合はどうなりますか? – lit

答えて

0
wmic os get localdatetime | > nul findstr /b /r /c:"......01" /c:"......14" && (
    robocopy "c:\somewhere" "x:\saveddata" *.pst 
) 
  • wmicは、2つの正規表現を使用してローカルの日付/時刻に
  • findstrを取得するために使用される日が01または14
  • ある場合findstrは、検索文字列を見つけた場合、それは意志決定するために使用されますerrorlevelと条件演算子&&(前のコマンドが失敗しなかった場合は次のコマンドを実行)が実行されますrobocopy
  • robocopy

をソースからターゲットに(デフォルトではコピーのみがファイルを変更)しかし、おそらく最良のオプションは、日付の選択を処理し、コピー操作を開始するようにスケジュールされたタスクを宣言することで更新されたファイルをコピーします。

フラグファイルが(tempフォルダにこのサンプルで)生成されたコメント

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    rem Check if today we need to do a backup 
    wmic os get localdatetime | > nul findstr /b /r /c:"......01" /c:"......14" && (

     rem Check if we have already done the backup 
     robocopy "%temp%." "%temp%." flagFile /is /maxage:1 >nul 2>nul && (

      rem Execute the backup 
      robocopy "c:\somewhere" "x:\saveddata" *.pst 

      rem And mark the backup as done 
      >"%temp%\flagFile" type nul 
     ) 
    ) 

に適応するを編集しました。フラグファイルが欠落している場合、それは古いファイルであるか、それが今日生成されているかを決定するために、robocopy /maxage:1が使用されます。

  • ファイルが存在しない場合、それはコピーできないとerrorlevelが0の場合
  • ですファイルは存在しますが古いファイルですerrorlevelは0
  • です。ファイルが存在していても今日作成されている場合、/maxage:1は除外されず、コピー用に選択されていますが、ソースとしてターゲットは同じでスキップされ、errorlevelは1
  • になります

したがって、条件付き実行演算子&&(前のコマンドが失敗しなかった場合は次のコマンドを実行)は、バックアップとフラグファイルの作成を開始します。

+0

あなたのサポーターに感謝します!しかし、私は最初のユーザーのログオン時にコピーが必要です。ユーザーが再度ログオンしてファイルを変更すると、バッチファイルが再度実行されるためです。 –

+0

@HuyTortoises、回答が更新されました。 –

+1

多くの方に感謝しますが、更新されたコードで/ bを見逃しました。さもなければ、robocopyは毎日excuteします! –

関連する問題