2017-08-17 24 views
0

將所需的所有文件(word文檔,excel表格,zip存檔文件等)保存到某個文件夾。在完成這些文件之後,我刪除它們。但有時我需要在刪除的舊文檔中查找某些內容。所以我需要將我的工作文件夾中的所有文件自動保存到另一個文件夾中。像備份一樣。有人可以用scipt幫我嗎?自動複製在某個文件夾中出現的每個文件

P.S.我在一天內收到大量文件,因此需要很長時間手動保存所有文件。我可以運行腳本來爲我做這件事。另外,只要文件出現在文件夾中,scipt就必須保存文件。

+0

但如果一個新的文件具有相同的名稱是什麼。如果你編輯文件怎麼辦? – Whencesoever

+0

是的,新文件可以具有相同的名稱。但我不需要保存編輯的文件 –

回答

0

我使用xcopy命令批量創建了批量腳本,用於增量備份和計劃備份。

此腳本的第一個執行是配置源和目標的路徑。並將它們保存在.cfg文件中,然後首次製作完整的副本。

它創建一個計劃任務與增量拷貝每個小時運行(即:只複製新文件或從源已被修改)

所以,你可以給這個批處理腳本一試:Incremental_Backup.bat

@echo off 
:: Incremental_Backup.bat Created by Hackoo on 12/08/2017 
:: It is a total copy first and then incrementally, 
:: ie, it just copies the new files and changed files. 
:: Create a Schedule Task for Copying files Hourly 
Mode con cols=95 lines=5 & color 0E 
Title %~nx0 for Incremental Backup with XCopy Command by Hackoo 2017 
set "Settings=%~dpn0_Settings.cfg" 
Set "FirstFull_CopyLog=%~dpn0_FirstFull_CopyLog.txt" 
Set "LogFile=%~dpn0_Incremental_CopyLog.txt" 
Set "TaskName=Backup_Task" 
Rem The repeated task is in minutes (60 min = 1 hour) 
Set "Repeat_Task=60" 
If not exist "%Settings%" (
    Call :BrowseForFolder "Please choose the source folder for the backup" SourceFolder 
    Setlocal EnableDelayedExpansion 
    If defined SourceFolder (
     echo(
     echo    You chose "!SourceFolder!" as source folder 
    ) else (
     echo(
     Color 0C & echo     The source folder is not defined ... Exiting ...... 
     Timeout /T 2 /nobreak>nul & exit 
    ) 
    Call :BrowseForFolder "Please choose the target folder for the backup" TargetFolder 
    If defined TargetFolder (
     echo(
     echo    You chose "!TargetFolder!" as Target folder 
    ) else (
     echo(
     Color 0C & echo     The Target folder is not defined ... Exiting ...... 
     Timeout /T 2 /nobreak>nul & exit 
    ) 
Timeout /T 3 /nobreak>nul 
    (
     echo "!SourceFolder!" 
     echo "!TargetFolder!\Backups_%ComputerName%\" 
    )> "%Settings%" 
cls & echo(& echo(
echo   Please wait a while ... The Backup to "!TargetFolder!\Backups_%ComputerName%\" is in progress... 
Call :Backup_XCopy "!SourceFolder!" "!TargetFolder!\Backups_%ComputerName%\" "!FirstFull_CopyLog!" 
Timeout /T 1 /nobreak>nul 
Call :Create_Schedule_Task_Copy %Repeat_Task% %TaskName% 
Start "" "!FirstFull_CopyLog!" & exit 
) else (
Setlocal EnableDelayedExpansion 
for /f "delims=" %%a in ('Type "%Settings%"') do (
    set /a idx+=1 
    set Param[!idx!]=%%a 
) 

Set "SourceFolder=!Param[1]!" 
Set "TargetFolder=!Param[2]!" 

Cls & echo(& echo(
echo  Please wait a while ... The Backup to !TargetFolder! is in progress... 
Call :Backup_XCopy !SourceFolder! !TargetFolder! !LogFile! 
Rem Just to query the Backup_Task and log it 
    (
     echo(
     echo %Date% @ %Time% 
     echo( 
     echo ======================================== ====================== =============== 
     @for /f "skip=2 delims=" %%a in ('Schtasks /Query /TN %TaskName%') do (
      @echo %%a 
     ) 
     echo ======================================== ====================== =============== 
    )>> !LogFile! 
) 
Timeout /T 1 /nobreak>nul 
Exit 
::**************************************************************************** 
:BrowseForFolder 
set "psCommand="(new-object -COM 'Shell.Application')^ 
.BrowseForFolder(0,'%1',0,0).self.path"" 
for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "%2=%%I" 
exit /b 
::**************************************************************************** 
:Backup_XCopy <Source> <Target> <LogFile> 
Xcopy /I /D /Y /S /E /J /C /F %1 %2 > %3 2>&1 
Exit /b 
::**************************************************************************** 
:Create_Schedule_Task_Copy <Repeat_Task_Every(N)Minute> <TaskName> 
(
    Schtasks /create /SC minute /MO %1 /TN "%2" /TR "%~f0" 
    Schtasks /Query /TN "%2" 
)>> "!FirstFull_CopyLog!" 2>&1 
exit /b 
::**************************************************************************** 
相關問題