wmic os get localdatetime | > nul findstr /b /r /c:"......01" /c:"......14" && (
robocopy "c:\somewhere" "x:\saveddata" *.pst
)
wmic
用於檢索本地日期/時間
findstr
有兩個正則表達式來確定一天爲01
或14
- 如果
findstr
找到搜索字符串,它會清除errorlevel
和條件運算符&&
(如果前一條未失敗,則執行下一條命令)將執行robocopy
robocopy
將從源複製更新的文件(默認情況下它僅複製更改的文件)到目標
但可能是最好的選擇就是宣佈計劃任務來處理日期選擇並開始複製操作。
編輯適應產生一個標誌文件的註釋
@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
)
)
(在此示例中在temp
文件夾)。要確定是否標誌文件丟失,這是一個古老的文件或它今天已經產生,robocopy /maxage:1
用於:
- 如果文件不存在,它不能被複制和
errorlevel
是0
- 如果該文件存在,但它是一箇舊文件
/maxage:1
將其從副本中排除,並且errorlevel
爲0
- 如果文件存在但現在已生成,
/maxage:1
不會排除它,但會將其選作複製源和目標是相同的,它將被跳過並且errorlevel
將會是1
因此,條件執行運算符&&
(如果前一個沒有失敗,則執行下一個命令)將啓動備份和創建標誌文件。
outlook數據在哪裏?在客戶端電腦上?你需要將它們發送到服務器呢?或者他們在你的服務器,只需要複製? – reza
它在客戶端計算機中。我需要在給定的日期自動複製文件。 –
您如何知道客戶端計算機將開機?如果計算機在這些日期不可用,會發生什麼情況? – lit