バッチで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
::****************************************************************************
が、どのような場合は、新しいファイルが同じ名前を持っています。ファイルを編集するとどうなりますか? – Whencesoever
はい、新しいファイルは同じ名前を持つことができます。しかし、編集したファイルを保存する必要はありません –