2017-08-17 3 views
0

自分の仕事に必要なすべてのファイル(ワードドキュメント、Excelシート、ZIPアーカイブなど)を特定のフォルダに保存します。私はそれらのファイルを完了した後、私はそれらを削除します。しかし、時には私が削除した古い文書の中に何かを見なければならないことがあります。だから私は私の仕事のフォルダから自動的に別のファイルをすべて保存する必要があります。バックアップのように。誰かがsciptで私を助けることができますか?特定のフォルダにあるすべてのファイルを自動的にコピーします。

P.S.私は1日にたくさんの文書を手に入れるので、手作業でそれらをすべて保存するには時間がかかります。私はそれを行うためのスクリプトを実行することができます。プラスは、フォルダに表示されるとすぐにファイルを保存する必要があります。

+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 
::**************************************************************************** 
関連する問題