@echo off
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 文件備份器V2.3(for WinXP only) Code by JM 2006-11-4 QQ:13132002
:: 出處:http://www.cn-dos.net/forum/viewthread.php?tid=20747
::
:: 功能:1、自由指定要備份的目錄(或文件)、位置、備份時(shí)間和任務(wù)名稱
:: 2、能檢測(cè)輸入是否正確
:: 3、能生成備份日志
:: 4、能多次添加備份任務(wù)
:: 5、能批量停止指定的備份任務(wù)
:: 6、能自動(dòng)刪除由本程序產(chǎn)生且不再使用的批處理程序和注冊(cè)表信息
:: 7、能從備份文件中恢復(fù)文件到源文件中,并保持各文件的原始屬性不變
::
:: 原理:只有當(dāng)源文件修改時(shí)間比目標(biāo)文件的修改時(shí)間新時(shí)才更新文件
::
:: 要修改或完善的地方:
::
:: ① 統(tǒng)一標(biāo)記是文件還是文件夾;
:: ② 禁止把文件備份到本文件夾及其子文件夾中去
::
:: 更新歷史:
::
:: 06.11.4
::
:: 增加了記錄備份文件更新列表的功能,進(jìn)一步完善日志功能;
::
:: 06.10.19
::
:: 因at命令只能以管理員權(quán)限運(yùn)行,此次更新增加了用戶權(quán)限的驗(yàn)證;添加了
:: xcopy的/c參數(shù),使得復(fù)制出錯(cuò)的時(shí)候(盡管出現(xiàn)這種情況的幾率非常低),能備份
:: 盡可能多的文件;精簡(jiǎn)了部分代碼;
::
:: 06.9.14
::
:: 對(duì)提取文件屬性的代碼做了優(yōu)化,使得生成備份批處理的效率大大提高,
:: 感謝pengfei提供代碼;修改了幾處錯(cuò)誤和疏漏;對(duì)代碼進(jìn)行分塊放置以便日后
:: 的維護(hù);此為V2.3
::
:: 06.9.3
::
:: 由于上次精簡(jiǎn)過度,代碼運(yùn)行會(huì)出錯(cuò),今天修改了一處致命錯(cuò)誤,感謝
:: pengfei的測(cè)試;增加了一些操作提示和出錯(cuò)檢測(cè);
::
:: 06.8.5
::
:: 添加了備份空目錄的參數(shù),精簡(jiǎn)了部分代碼;
:: 06.8.1
::
:: 實(shí)現(xiàn)了用同一條命令復(fù)制文件和文件夾;修正了幾處錯(cuò)誤;
:: 06.7.29
::
:: 精簡(jiǎn)了獲取屬性的代碼,感謝willsort提供;
:: 06.7.28
:: 完善了對(duì)備份后的文件進(jìn)行恢復(fù)的操作,使得恢復(fù)操作對(duì)文件或者文件夾
:: 都適用;此為V2.2
::
:: 06.7.1
:: 完善了對(duì)日期的檢測(cè);
:: 06.6.29
:: 增加了恢復(fù)文件的功能;對(duì)生成后的文件的屬性進(jìn)行了調(diào)整;此為V2.1;
:: 06.6.20
:: 對(duì)顯示各分區(qū)磁盤剩余空間的代碼進(jìn)行了修改,只顯示磁盤的剩余空間,
:: 而不會(huì)畫蛇添足地顯示光盤剩余空間;
:: 06.6.15
:: 增加了日期和時(shí)間輸入錯(cuò)誤檢測(cè)功能(感謝bagpipe提供代碼);
:: 06.6.12
:: 修改了查詢各分區(qū)剩余空間的代碼,當(dāng)磁盤卷標(biāo)名為中文時(shí)也能準(zhǔn)確排版。
:: 感謝willsort作深入分析并提供代碼;當(dāng)備份任務(wù)創(chuàng)建后,能自動(dòng)打開備份后
:: 的文件夾和創(chuàng)建日志,以便查看備份創(chuàng)建結(jié)果;徹底刪除無(wú)用文件;精簡(jiǎn)了部
:: 分代碼;
:: 06.6.10
:: 修正了一處錯(cuò)誤;精簡(jiǎn)了部分代碼;
:: 06.6.9
:: 更改備份日志代碼,將使備份日志體積減少近一半;更改了實(shí)現(xiàn)文件名自動(dòng)
:: 完成這一功能的功能鍵(感謝electronixtar的提醒),但需要注冊(cè)表中的特定鍵
:: 值為默認(rèn)設(shè)置(有關(guān)討論請(qǐng)參考http://www.cn-dos.net/forum/viewthread.php?
:: tid=21091&fpage=1);
:: 06.6.6
:: 修改了部分代碼,使得當(dāng)需要每天備份的功能時(shí),避免了煩瑣的輸入;增加
:: 了文件名自動(dòng)完成的功能(感謝willsort提出設(shè)想并提供代碼);此為V1.9;
:: 06.6.4
:: 增加了如下功能:當(dāng)保存?zhèn)浞菸募r(shí),如果要對(duì)文件夾進(jìn)行追加或者覆蓋等
:: 操作,可先查看該文件夾下的內(nèi)容再作決定;補(bǔ)充了備份風(fēng)險(xiǎn)提示;
:: 06.6.3
:: 對(duì)備份后文件的保存位置這部分代碼進(jìn)行了修改,使得程序能自動(dòng)適應(yīng)備份
:: 對(duì)象為文件和文件夾兩種情況,使備份后文件夾的目錄結(jié)構(gòu)得到保持,感謝
:: willsort提供代碼;當(dāng)備份文件即將保存到一個(gè)已經(jīng)存在的目錄下時(shí),增加了允
:: 許追加至該目錄的選擇;
:: 06.6.2
:: 添加和修改了了如下功能:可以選擇在開機(jī)時(shí)是否自動(dòng)運(yùn)行備份任務(wù)程序;
:: 開始運(yùn)行本程序或者停止某項(xiàng)備份任務(wù)時(shí),自動(dòng)刪除當(dāng)前計(jì)劃任務(wù)中不再使用的
:: 備份任務(wù)程序,并刪除對(duì)應(yīng)的注冊(cè)表鍵值,以減少系統(tǒng)垃圾;更改了備份任務(wù)程
:: 序的保存位置;去除了盤符小寫轉(zhuǎn)換為大寫的雞肋代碼;增強(qiáng)了路徑輸入為空時(shí)
:: 的檢測(cè)(感謝willsort提供代碼);修改了幾處錯(cuò)誤;精簡(jiǎn)了部分代碼,此為V1.8;
:: 06.5.31
:: 在注冊(cè)表中( 位置是:HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/
:: CurrentVersion/Run) 增添了開機(jī)自動(dòng)運(yùn)行備份程序的鍵值( 以備份任務(wù)名稱作
:: 為鍵值) ,盡可能減少錯(cuò)過備份的情況;如果更新了內(nèi)容,則備份完畢后自動(dòng)打
:: 開備份日志;修正了幾處錯(cuò)誤;此為V1.7;
:: 06.5.30
:: 完善了備份流程,在列出創(chuàng)建備份任務(wù)的清單時(shí),可更改備份任務(wù)內(nèi)容;在
:: 創(chuàng)建備份任務(wù)的同時(shí),強(qiáng)制啟動(dòng)計(jì)劃任務(wù)服務(wù),并立即作復(fù)制操作;顯示各磁盤
:: 分區(qū)剩余空間情況的時(shí)候,增加了顯示磁盤卷標(biāo)名的功能;更改了注意事項(xiàng)界面
:: 中的前景色和背景色,使色調(diào)顯得明快而柔和;
:: 06.5.28
:: 增加了在每周的指定日期進(jìn)行備份的功能;添加了當(dāng)計(jì)劃任務(wù)出錯(cuò)時(shí)提交報(bào)
:: 告的功能;完善了日志記錄功能,只有當(dāng)文件更新時(shí)才會(huì)改寫日志;完善了注意
:: 事項(xiàng)中的內(nèi)容;增加了刪除所有計(jì)劃任務(wù)的功能;此為 V1.6 ;
:: 06.5.26
:: 增加了不允許把保存路徑設(shè)置為與源文件路徑相同、或者為源文件某一目錄
:: 的功能;添加了注意事項(xiàng)提示功能;修正了幾處錯(cuò)誤;部分代碼參照中國(guó)DOS 聯(lián)
:: 盟論壇(http://www.cn-dos.net/forum) 網(wǎng)友bagpipe所發(fā)帖子,使一些代碼得
:: 到精簡(jiǎn);此為V1.5;
:: 06.5.25
:: 增加了把備份文件的保存目錄拖曳到窗口執(zhí)行的功能;增加了批量停止指定
:: 備份任務(wù)的功能;修改了幾處錯(cuò)誤;精簡(jiǎn)了部分代碼;此為V1.4;
:: 06.5.24
:: 增加了把要備份的文件拖曳到窗口執(zhí)行的功能;感謝中國(guó)DOS 聯(lián)盟論壇
:: (http://www.cn-dos.net/forum)版主willsort提供代碼;此為V1.3;
:: 06.5.23
:: 修正了一處關(guān)鍵錯(cuò)誤,使得備份能順利進(jìn)行下去;在中國(guó)DOS 聯(lián)盟論壇
:: (http://www.cn-dos.net/forum)版主willsort等網(wǎng)友的熱心幫助下,增強(qiáng)了程
:: 序輸入錯(cuò)誤檢測(cè)能力,并修正了一些拼寫錯(cuò)誤,在此深表謝意;
:: 06.5.22
:: 修改了顯示各分區(qū)剩余空間的代碼,使顯示界面的框線自動(dòng)適應(yīng)剩余空間條
:: 目下不同長(zhǎng)度的字符;
:: 06.5.21
:: 增添了停止指定備份任務(wù)的功能,使本程序的功能進(jìn)一步完善;增添了將備
:: 份后的文件設(shè)置為" 系統(tǒng)+ 只讀" 屬性的功能,從而在一定程度上提高了備份后
:: 的文件的安全;修正了幾處錯(cuò)誤;優(yōu)化了部分代碼;此為V1.2;
:: 06.5.20
:: 頭兩天的算法存在備份不完全的弊端,今天把copy命令更改為xcopy 命令,
:: 從而使本程序能夠備份指定目錄下除空目錄之外的所有文件( 包括目錄之下還有
:: 子目錄、子目錄內(nèi)含有文件的文件嵌套) ,并使代碼得到了精簡(jiǎn);頭兩天的代碼
:: 生成備份任務(wù)批處理的時(shí)候,因?yàn)樽詣?dòng)命名的程序名稱是固定的,如果有不同的
:: 備份任務(wù)的話,最后一次任務(wù)將把上一次的任務(wù)刪除,今天把備份任務(wù)的命名改
:: 為手動(dòng)指定;增添了多次添加備份任務(wù)的功能;此為V1.1;
:: 06.5.19
:: 增加了系統(tǒng)檢測(cè)功能,使得該程序只能運(yùn)行于XP操作系統(tǒng)下;編寫輸入錯(cuò)誤
:: 檢測(cè)代碼,使輸入錯(cuò)誤能得到及時(shí)更改;統(tǒng)一了交互界面,看上去更加美觀;本
:: 來(lái)想增加指定每周的某幾天進(jìn)行備份操作的功能,但是一直未能實(shí)現(xiàn),只好暫時(shí)
:: 放棄,留待下幾個(gè)版本解決;優(yōu)化了部分冗余代碼;
:: 06.5.18
:: 在對(duì)本人電腦上重要資料進(jìn)行備份的時(shí)候,深感手工備份的煩瑣,而網(wǎng)上的
:: 備份軟件又有諸多限制,正好本人在自學(xué)DOS 批處理編程,于是花了半天的時(shí)間
:: 來(lái)構(gòu)思本程序的核心功能,編寫初步代碼;此為V1.0;
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem if not "%1"=="$" %comspec% /f:on /c %0 $ && goto :eof
:: 屏蔽掉上一句,用Tab/Shift+Tab可實(shí)現(xiàn)同樣功能
mode con lines=26
title 文件備份器-文件備份器
color 1f
cls
rem =========檢測(cè)系統(tǒng)是否支持本程序=============
:check_system
ver|find "XP">nul || goto system_error
rem =========檢測(cè)當(dāng)前用戶是否具有管理員權(quán)限=============
:check_popedom
net users %username%|findstr /i "/*administrator">nul||goto popedom_error
call :del_nouse
rem =======輸入要備份文件的路徑并檢測(cè)輸入是否正確=======
:input_source
mode con lines=26
cls
color 1f
title 文件備份器-請(qǐng)輸入源文件路徑
echo
主站蜘蛛池模板:
巴中市|
沅江市|
盘山县|
安庆市|
佛学|
化州市|
稻城县|
张北县|
纳雍县|
盐津县|
双桥区|
大同市|
姜堰市|
甘德县|
余姚市|
驻马店市|
呼玛县|
江西省|
金坛市|
托里县|
龙陵县|
镇赉县|
内丘县|
桐梓县|
武鸣县|
旅游|
恩平市|
乌海市|
犍为县|
漠河县|
比如县|
威宁|
蕲春县|
清镇市|
彭山县|
成安县|
慈利县|
师宗县|
乌鲁木齐市|
襄樊市|
麦盖提县|