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 になります
したがって、条件付き実行演算子&&
(前のコマンドが失敗しなかった場合は次のコマンドを実行)は、バックアップとフラグファイルの作成を開始します。
ここで、Outlookデータはありますか?クライアントコンピュータでは?それをサーバーにも送信する必要がありますか?または彼らはあなたのサーバーにあり、コピーが必要ですか? – reza
これはクライアントコンピュータにあります。私は与えられた日付に自動コピーファイルが必要です。 –
クライアントコンピュータの電源が入っていることをどのように知っていますか?コンピュータがその日付に利用できない場合はどうなりますか? – lit