⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 文件备份器v2.3修改版2.cmd

📁 文件 源碼可以再編輯 打入你要備份文件路徑就可以備份了
💻 CMD
📖 第 1 页 / 共 5 页
字号:
echo xcopy /c /e /h /i /g /q /r /s /x /y "%SourceFiles%" "%source%"^>nul 2^>nul
echo del /a /f "%source%\%name_log%_log.log"^>nul 2^>nul
)>>"%batch_directory%\%name%_revert.bat"

rem  ========获取文件(夹)的属性=============
:get_attrib
:: 根据文件(夹)来取舍dir中的/s参数,以防%suorce%为文件时多列路径
:: 但是当%source%为文件的时候,dir /a /b "%source%"不会显示绝对路径
if "%folder%"=="yes" (set dir_='dir /a /b /s "%source%"') else (set dir_="%source%")
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (%dir_%) do (
    set var=%%~ai
    set attrib_=
    if not "!var:~1,1!"=="-" set attrib_=+!var:~1,1!
    if not "!var:~3,1!"=="-" set attrib_=!attrib_! +!var:~3,1!
    if not "!var:~4,1!"=="-" set attrib_=!attrib_! +!var:~4,1!
    if not "!attrib_!"=="" echo attrib !attrib_! "%%i">>"%batch_directory%\%name%_revert.bat"
)

:add_to_reg
cls
color 1f
title 文件备份器-开机自运行选项
echo.
echo                               ╭────────╮
echo           ╭─────────┤ 开机自运行选项 ├─────────╮
echo           │                  ╰────────╯                  │
echo           │        操作说明:                                      │
echo           │                                                        │
echo           │            本操作即将把备份任务加入到开机自运行        │
echo           │                                                        │
echo           │        选项中。若要取消开机自运行功能,请在"开始       │
echo           │                                                        │
echo           │        \运行"中输入"msconfig",打开"系统配置实用       │
echo           │                                                        │
echo           │        程序",在"启动"处取消以备份任务名称命名的       │
echo           │                                                        │
echo           │        启动项目,或者在注册表[HKEY_LOCAL_MACHINE\      │
echo           │                                                        │
echo           │        SOFTWARE\Microsoft\Windows\CurrentVersion\      │
echo           │                                                        │
echo           │        Run]下删除相应的字符串值。                      │
echo           │                                                        │
echo           ╰────────────────────────────╯
echo.
echo            接受请直接敲回车                                跳过请按 S
echo           ──────────────────────────────
echo.
set choice=
set /p choice=           请输入操作代码(S/回车):
if /i "%choice%"=="s" goto run_at

rem  ========在注册表中增添自启动项以便开机时自动备份=============
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v %name% /t REG_SZ /d "%batch_directory%\%name%_backup.bat" /f >nul 2>nul

:run_at
:: 强制启用计划任务服务
sc config Schedule start= AUTO >nul 2>nul
sc start Schedule>nul 2>nul
rem  ==========导入at计划任务=========
for %%i in (%copytime%) do (
    at %%i /every:%copydate%  "%batch_directory%\%name%_backup.bat">nul 2>nul
)
attrib /s /d -s -r "%destination%\*.*">nul 2>nul
(
echo.
echo   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.
echo       于%date% %time:~0,8%创建了备份任务
echo       备份对象:%source%
echo       备份文件保存位置:%destination%
echo       备份程序位置:%batch_directory%\%name%_backup.bat
echo       文件恢复程序位置:%batch_directory%\%name%_revert.bat
echo.
echo   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.
echo ________________________________________________________________________________
)>>"%destination%\%name_log%_log.log"

cls
color 1f
title 文件备份器-备份中……
echo.
echo.
echo.
echo.
echo.
echo.
echo                               ╭────────╮
echo           ╭─────────┤  正在备份文件  ├─────────╮
echo           │                  ╰────────╯                  │
echo           │        操作说明:                                      │
echo           │                                                        │
echo           │            备份时间和文件大小、文件数量成正比,请      │
echo           │                                                        │
echo           │        耐心等待……                                    │
echo           │                                                        │
echo           ╰────────────────────────────╯
xcopy /c /h /i /g /q /r %xcopy_parameter% /x /y "%source%" "%destination%">nul 2>nul
attrib /s /d +s +r "%destination%\*.*">nul 2>nul

::  添加当计划任务出错时提交报告的功能
:: --------------------------------------------------------------------
:: 当使用计划任务让系统自动运行一些命令或程序时,如果运行时发生错误,
:: 在系统的默认设置里,计划任务不会提交错误报告。
:: 此设置就是让计划任务在出现错误时弹出提示信息。
:: 要禁用此功能,请删除注册表中SchedulingAgent下的 NotifyOnTaskMiss
:: --------------------------------------------------------------------
:: reg add HKLM\SOFTWARE\Microsoft\SchedulingAgent /v NotifyOnTaskMiss /t REG_DWORD /d 00000001 /f >nul 2>nul

cls
title 备份日志
echo.
echo.
type "%destination%\%name_log%_log.log"
echo.
echo.
echo.
echo                                                        按任意键继续...
pause>nul

cls
title 备份任务列表
echo.
echo.
echo.
echo.
echo.
echo.
echo ________________________________________________________________________________
echo.
for %%i in (%copytime%) do (
    echo          已经添加了每月^(周^) %copydate% 日 %%i 对"%source%"的备份任务
)
echo.
echo ________________________________________________________________________________
echo.
echo                     如要继续添加备份任务,请输入 B ,其他任意键退出...
echo.
echo.
set again=
set /p again=                             请选择下一步操作代码: 
if /i "%again%"=="b" goto input_source
exit

rem  ========删除不再使用的文件或目录=============
:del_nouse
:: 以下语句的作用是:如果停止了某项备份任务,则检查硬盘上由本程序生成的bat文件中,
:: 不在at任务列表中的有哪些;如果有,则删除该bat,同时删除注册表中对应的字符串值;
:: 如果没有,则不作任何删除操作;
:: 如果由本程序在%ProgramFiles%下创建的目录为空,则删除该目录
attrib -h -r -s "%ProgramFiles%\备份任务程序\*.bat">nul 2>nul
setlocal enabledelayedexpansion
for %%i in ("%ProgramFiles%\备份任务程序\*_backup.bat") do (
    set full_name=%%i
    set part_name=!full_name:~0,-11!
    at|find /i "%%i">nul || find /i "Code by JM" "!part_name!*.bat">nul && (
        del /f /q "!part_name!*.bat"
        reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v %%~fi /f >nul 2>nul
    )
)
for %%i in ("%ProgramFiles%\备份任务程序\*.bat") do (
    find /i "Code by JM" "%%i">nul && attrib +r "%%i"
)
if not exist "%ProgramFiles%\备份任务程序" goto :eof
dir /a /b "%ProgramFiles%\备份任务程序"|findstr .>nul || rd /q "%ProgramFiles%\备份任务程序"
goto :eof


:: ━━━━━━━━━━━━━━━━━以下代码为出错提示━━━━━━━━━━━━━━━━━

:system_error
cls
color 0c
title 文件备份器-操作系统不支持
echo.
echo.
echo.
echo.
echo.
echo.
echo                               ╭────────╮
echo           ╭─────────┤ 操作系统不支持 ├─────────╮
echo           │                  ╰────────╯                  │
echo           │                                                        │
echo           │                                                        │
echo           │         非常抱歉,该程序只能在XP环境下运行             │
echo           │                                                        │
echo           │                     程序即将退出...                    │
echo           │                                                        │
echo           ╰────────────────────────────╯
ping 127.1 -n 4 >nul && goto :eof

:popedom_error
cls
color 0c
title 文件备份器-权限不足
echo.
echo.
echo.
echo.
echo.
echo.
echo                               ╭────────╮
echo           ╭─────────┤    权限不足    ├─────────╮
echo           │                  ╰────────╯                  │
echo           │                                                        │
echo           │                                                        │
echo           │                                                        │
echo           │      非常抱歉,当前用户权限太低,无法运行本程序        │
echo           │                                                        │
echo           │      请换用具备管理员组权限的其他用户帐号来运行        │
echo           │                                                        │
echo           │                    按任意键退出...                     │ 
echo           │                                                        │
echo           ╰────────────────────────────╯
pause>nul
goto :eof

:subarea_noexist
cls
color 0c
title 文件备份器-磁盘 "%subarea%" 不存在
echo.
echo.
echo.
echo.
echo.
echo                               ╭────────╮
echo           ╭─────────┤ 磁盘分区不存在 ├─────────╮
echo           │                  ╰────────╯                  │
echo           │                                                        │
echo           │                                                        │
echo           │                盘符为 %subarea% 的磁盘分区不存在               │
echo           │                                                        │
echo           │             按任意键返回上一步重新选择路径             │
echo           │                                                        │
echo           ╰────────────────────────────╯
echo.
pause>nul
goto input_destination

:source_noexist
cls
color 0c
title 文件备份器-文件不存在
echo.
echo.
echo.
echo.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -