用批处理实现文件备份器V2.3

2019-01-30 13:22:15刘景俊

:over_write
attrib /s /d -s -h -r "%destination%*.*">nul 2>nul
rd /q /s "%destination%">nul 2>nul
md "%destination%">nul 2>nul
(echo.
echo                                 备份日志)>"%destination%%name_log%_log.log"
attrib /s /d +s +r "%destination%*.*">nul 2>nul

:input_date
cls
color 1f
title 文件备份器-请输备份入日期
echo                               ╭────────╮
echo           ╭─────────┤ 请输入备份日期 ├─────────╮
echo           │                  ╰────────╯                  │
echo           │                                                        │
echo           │        1.若在每月的某几天备份,请输入从1到31的任意     │
echo           │                                                        │
echo           │    数字,比如1,3,4;若只在每月1号备份,请输入"1,";   │
echo           │                                                        │
echo           │        2.若在每周的某几天备份,请输入星期几的代码      │
echo           │                                                        │
echo           │    (M,T,W,Th,F,S,Su);如果指定日期较多,在查看任务     │
echo           │                                                        │
echo           │    列表的时候,日期一栏将用省略号显示;                │
echo           │                                                        │
echo           │        3.数字与字母不可混用;数字行或字母行首尾均无    │
echo           │                                                        │
echo           │    任何符号,其间用逗号分隔;请严格按照本格式填写!    │
echo           │                                                        │
echo           ╰────────────────────────────╯
echo.
echo            返回上一步请按 1                                退出请按 0
echo           ──────────────────────────────
echo                                   每天都备份请按 A
echo.
set copydate=
set /p copydate=          请输入备份日期:
if "%copydate%"=="" goto input_date
if "%copydate%"=="," goto input_date
if "%copydate%"=="0" exit
if "%copydate%"=="1" goto input_destination
if "%copydate%"=="1," goto input_time
if /i "%copydate%"=="a" goto all_date
:: 检查日期输入是否正确
set num=0
set char=%copydate%
for /f "tokens=1 delims=," %%i in ("%char%") do (
    echo "%%i"|findstr /i "M T W Th F S Su">nul && goto check_alphabetical_date|| goto check_numerical_date
)
相关文章 大家在看