中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 备份当天的文件夹到F盘与恢复
作者:
标题: 备份当天的文件夹到F盘与恢复 上一主题 | 下一主题
gool123456
初级用户




积分 89
发帖 76
注册 2009-12-13
状态 离线
『楼 主』:  备份当天的文件夹到F盘与恢复

一键备份指定目录到F盘,一键恢复指定目录到原始路径。很适合做软件维护和经常重装的朋友用~!

可以单个目录复制,直接拖入要复制的目录回车后,批处理自动创建与复制。

也可以使用一个文本列表(dirlist.txt)来批量复制多个目录 --

只要把自己定义的dirlist.txt与批处理放在一起,运行批处理自动复制dirlist.txt记录的目录。

dirlist.txt文本的内容是你要复制的目录列表,每行记录一个目录的绝对路径,如:

c:\123
c:\Intel
C:\Program Files\Thunder Network
C:\Program Files\专业工具\硬件检测
C:\Documents and Settings\All Users\Application Data\Thunder Network
d:\360liulan
d:\Downloads

自己定义即可。

没有定义文件dirlist.txt时,默认的功能是一次复制一个目录。


备份目录到F盘.bat 内容:


@echo off&setlocal EnableDelayedExpansion
::Code by gool123456 @ 2010 On BBS.cn-DOS.net
echo ==========今天是:%date%=============
echo.
if exist dirlist.txt (goto :TXT) else (
set /p folder_=拖入要备份的文件夹并回车:
call :task
set folder=!folder_:"=!
set "mm=!folder:\=,!"
set "mm=!mm: =:!"
for %%e in (!mm!) do set "mm_=%%e"
set "mm_=!mm_::= !"
md "f:\!date_!\!mm_!" 2>nul
Xcopy !folder_! "f:\!date_!\!mm_!" /e /y
)
pause
>>f:\!date_!\dirlist.txt echo !folder!
goto :eof
:TXT
for /f "delims=" %%a in (dirlist.txt) do (
call :task
set "folder=%%a"
set "mm=!folder:\=,!"
set mm=!mm: =:!
for %%e in (!mm!) do set "mm_=%%e"
set "mm_=!mm_::= !
md "f:\!date_!\!mm_!"
Xcopy "%%a" "f:\!date_!\!mm_!" /e /y
)
pause
copy /y dirlist.txt "f:\!date_!" >nul
goto :eof
:task
for /f "delims= " %%i in ('echo %date%') do set "date_=%%i"
set "date_=%date_:-=%"
if not exist "f:\%date_%" md "f:\%date_%"
goto :eof



恢复.bat 内容:



@echo off & setlocal EnableDelayedExpansion
::Code by gool123456 @ 2010 On BBS.cn-DOS.net
::恢复今天备份的文件夹
for /f "delims= " %%i in ('echo %date%') do set "date_=%%i"
set "date_=%date_:-=%"
if exist "f:\%date_%" (
cd /d "f:\%date_%"
if exist dirlist.txt (
for /f "delims=" %%c in (dirlist.txt) do (
set "folder=%%c"
set "mm=!folder:\=,!"
set mm=!mm: =:!
for %%e in (!mm!) do set "mm_=%%e"
set "mm_=!mm_::= !
if exist "!mm_!" (
if not exist "%%c" MD "%%c"
Xcopy "!mm_!" "%%c" /y /e
                 )
               )
            ) else (echo 缺失列表文件:dirlist.txt&pause>nul&goto :eof)
echo.&echo 成功恢复&pause>nul  
          ) else (echo 没有今天可恢复的文件夹&pause>nul)      
goto :eof


[ Last edited by gool123456 on 2010-5-6 at 22:03 ]



Discuz! 现在时间
2010-5-6 21:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: