溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

windows中如何使用批處理備份目錄

發(fā)布時(shí)間:2021-10-28 18:01:46 來(lái)源:億速云 閱讀:315 作者:小新 欄目:建站服務(wù)器

這篇文章主要介紹windows中如何使用批處理備份目錄,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

以下是需要備份文件的一個(gè)bat 批處理腳本,備份昨天C:\Users\Administrator\Desktop\\111\2020\03\05目錄下面的文件,

需要寫(xiě)一個(gè)批處理文件,首先考慮需要獲取昨天的日期,以及創(chuàng)建一個(gè)日期的目錄存放備份,查看要備份的文件個(gè)數(shù)文件的大小,

備份完的文件大小個(gè)數(shù)的多少 ,在進(jìn)行前后的比較一下,代碼如下:

rem: "author is czb"

rem: "create scripts time 2020-03-05"

@echo off

set date_time=%date:~0,4%%date:~5,2%%date:~8,2%_0%time:~1,1%%time:~3,2%%time:~6,2% 

set suiji=%random%

echo initing...........

rem:"獲取昨天的時(shí)間"

@echo off

set YE=%date:~0,4%

set MO=%date:~5,2%

set DA=%date:~8,2%

set DG=1

set/a vY1=%YE% %% 400

set/a vY2=%YE% %% 4

set/a vY3=%YE% %% 100

if %vY1%==0 (set var=true) else (if %vY2%==0 (if %vY3%==0 (set var=false) else (set var=true)) else (set var=false))

set LY=%YE%

set LM=%MO%

if %MO:~0,1%==0 (set MO=%MO:~1,1%)

if %DA:~0,1%==0 (set DA=%DA:~1,1%)

if %DA% GTR %DG% (set/a LD=%DA%-%DG%) else (

if %MO%==1 (set/a LY=%YE%-1) & (set/a LM=12) & (set/a LD=31+%DA%-%DG%) else (

set/a LM=%MO%-1

if %MO%==3 (if %var%==false (set/a LD=28+%DA%-%DG%) else (set/a LD=29+%DA%-%DG%))

for %%a in (2 4 6 8 9 11) do (if "%MO%"=="%%a" (set/a LD=31+%DA%-%DG%))

for %%b in (5 7 10 12) do (if "%MO%"=="%%b" (set/a LD=30+%DA%-%DG%))))

if %LM% LSS 10 set LM=0%LM:~-1%

if %LD% LSS 10 set LD=0%LD:~-1%

set strLstDt=%LY%%LM%%LD%

echo 昨天的日期為:%strLstDt%

echo.

rem:"dirPath定義預(yù)備份文件的路徑(%LY%/%LM%/%LD% 固定格式) tarPath定義備份文件的路徑 logpath定義備份時(shí)產(chǎn)生的日志路徑"

set  dirPath=C:\Users\Administrator\Desktop\新建文件夾\111\%LY%/%LM%/%LD%

set  tarPath=C:\Users\Administrator\Desktop\新建文件夾

set  logpath=C:\Users\Administrator\Desktop\新建文件夾\logs

rem:"查看預(yù)備份文件的個(gè)數(shù)以及大小"

cd %dirPath%

setlocal enabledelayedexpansion

set /a countbegin = 0

set /a file1sizebegin = 0

for /f %%i in ('dir /b /s /a-d') do (

        set /a countbegin=countbegin+1

        set /a file1sizebegin=file1sizebegin+%%~zi

)

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo 預(yù)備份目錄%cd%   文件數(shù):!countbegin!個(gè)   文件大小和:!file1sizebegin!個(gè)字節(jié) >>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

)

popd

rem:"創(chuàng)建備份目錄以及備份預(yù)備份的文件"

set str_time_first_bit="%time:~0,1%"

if %str_time_first_bit%==" " (

set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%_0%time:~1,1%%time:~3,2%%time:~6,2%

)else ( 

set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%

)

echo The folder is about to be created: %strLstDt%_%suiji%_backups

set targetpath="%tarPath%"\%strLstDt%_%suiji%_backups

mkdir "%targetpath%"

set copytimebegin=%date:~0,4%-%date:~5,2%-%date:~8,2%  %time:~0,2%:%time:~3,2%:%time:~6,2%

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo 創(chuàng)建要備份的目錄: %targetpath% 成功 ?。。。?>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

set a=%time%

echo 開(kāi)始執(zhí)行備份,開(kāi)始備份的時(shí)間為%copytimebegin%>>%logpath%\"%strLstDt%_%suiji%".log

echo D|xcopy %dirPath%\*.*  %targetpath% /s /q

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo 備份文件到 %targetpath% 成功 !?。?!>>%logpath%\%strLstDt%_%suiji%.log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

set copytimeend=%date:~0,4%-%date:~5,2%-%date:~8,2%  %time:~0,2%:%time:~3,2%:%time:~6,2%

set b=%time%

echo 結(jié)束執(zhí)行備份,結(jié)束備份的時(shí)間為%copytimeend%>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

rem:"查看備份文件的個(gè)數(shù)以及大小"

cd "%targetpath%"

setlocal enabledelayedexpansion

set /a count = 0

set /a file1size = 0

for /f %%i in ('dir /b /s /a-d') do (

        set /a count=count+1

        set /a file1size=file1size+%%~zi

)

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo 備份目錄%cd%   文件數(shù):!count!個(gè)   文件大小和:!file1size!個(gè)字節(jié) >>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

)

popd

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

rem :"計(jì)算開(kāi)始備份到結(jié)束備份總共花費(fèi)的時(shí)間"

@echo off

set /a h2=%a:~0,2%

set /a m1=1%a:~3,2%-100

set /a s1=1%a:~6,2%-100

set /a h3=%b:~0,2%

set /a m2=1%b:~3,2%-100

set /a s2=1%b:~6,2%-100

if %h3% LSS %h2% set /a h3=%h3%+24

set /a ts1=%h2%*3600+%m1%*60+%s1%

set /a ts2=%h3%*3600+%m2%*60+%s2%

set /a ts=%ts2%-%ts1%

set /a h=%ts%/3600

set /a m=(%ts%-%h%*3600)/60

set /a s=%ts%%%60

echo 本次備份!count!個(gè)文件成功?。?!備份總共耗時(shí)的時(shí)間為%h%小時(shí)%m%分%s%秒 >>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>%logpath%\"%strLstDt%_%suiji%".log

echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>%logpath%\"%strLstDt%_%suiji%".log

rem : 校驗(yàn)預(yù)備份文件與備份文件

if %countbegin% == %count% if %file1sizebegin% == %file1size% (echo 預(yù)備份文件的個(gè)數(shù)、文件的大小  與 備份文件的個(gè)數(shù)、大小相等,此備份校驗(yàn)成功 ?。。。?gt;>%logpath%\"%strLstDt%_%suiji%".log)

else (

echo 此備份備份失敗 ?。。。?/p>

)

echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>%logpath%\"%strLstDt%_%suiji%".log

echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

echo ===============================================================================================>>%logpath%\"%strLstDt%_%suiji%".log

exit

以上是“windows中如何使用批處理備份目錄”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI