时间:2021-05-22
题目:用DOS批处理实现建立文件夹
要求:1要求建立文件名格式为"YYYY1-MM1-DD1至YYYY2-MM2-DD2"的文件夹
2其中YYYY1-MM1-DD1是今天的日期;YYYY2-MM2-DD2是四天后的日期
解答:
复制代码 代码如下:
@echooff
rem比较运算符:EQU-等于NEQ-不等于LSS-小于LEQ-小于或等于GTR-大于GEQ-大于或等于
rem取模运算符:%%DOS的取模运算符(批处理文件里用%%,非批处理命令行下用%)
rem日志文件夹名称初始值
setfilelog=%date:~0,10%至
rem后续日期的变量
set/Ay=0
set/Am=0
set/Ad=0
rem取日期YYYYMMDD中的DD两位
set/Add=%date:~8,2%
set/Addp4=%dd%+4
rem取日期YYYYMMDD中的MM两位
set/Amm=%date:~5,2%
set/Ammp1=%mm%+1
rem取日期YYYYMMDD中的YYYY四位
set/Ayyyy=%date:~0,4%
set/Ayyyyp1=%yyyy%+1
set/Ayymd=yyyy%%4
rem如果是31天的月份(1,3,5,7,8,10,12)
rem12月特殊
if%mm%equ12(
if%ddp4%leq31(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr31(
if%mmp1%gtr12(
set/Ay=%yyyy%+1
set/Am=1
set/Ad=%ddp4%-31
)
)
gotoEND
)
if%mm%equ10(
if%ddp4%leq31(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr31(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-31
)
gotoEND
)
if%mm%equ8(
if%ddp4%leq31(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr31(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-31
)
gotoEND
)
if%mm%equ7(
if%ddp4%leq31(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr31(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-31
)
gotoEND
)
if%mm%equ5(
if%ddp4%leq31(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr31(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-31
)
gotoEND
)
if%mm%equ3(
if%ddp4%leq31(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr31(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-31
)
gotoEND
)
if%mm%equ1(
if%ddp4%leq31(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr31(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-31
)
gotoEND
)
rem如果是30天的月份(4,6,9,11)
if%mm%equ11(
if%ddp4%leq30(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr30(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-30
)
gotoEND
)
if%mm%equ9(
if%ddp4%leq30(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr30(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-30
)
gotoEND
)
if%mm%equ6(
if%ddp4%leq30(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr30(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-30
)
gotoEND
)
if%mm%equ4(
if%ddp4%leq30(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr30(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-30
)
gotoEND
)
rem如果是28或29天的月份(2)
if%mm%equ2(
if%yymd%equ0(
if%ddp4%leq29(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr29(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-29
)
gotoEND
)
if%ddp4%leq28(
set/Ay=%yyyy%
set/Am=%mm%
set/Ad=%ddp4%
)
if%ddp4%gtr28(
set/Ay=%yyyy%
set/Am=%mmp1%
set/Ad=%ddp4%-28
)
)
rem组合文件夹名称,并建立文件夹
:END
if%m%lss10setfilelog=%filelog%%y%-0%m%
ifnot%m%lss10setfilelog=%filelog%%y%-%m%
if%d%lss10setfilelog=%filelog%-0%d%
ifnot%d%lss10setfilelog=%filelog%-%d%
mkdir%filelog%
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
rd命令递归删除目录要求:用DOS的RD命令删除D盘“文件夹1”中的“文件夹2”整个目录。具体命令:复制代码代码如下:rdD:\文件夹1\文件夹2/S/Q删除一
四、编写批处理文件,打造自动系统备份与还原 比如在E盘下BAK文件夹下面建立GHOST文件夹,存放有GHOST.EXE程序, e:\bak\ghost\gh
四、编写批处理文件,打造自动系统备份与还原 比如在E盘下BAK文件夹下面建立GHOST文件夹,存放有GHOST.EXE程序, e:\bak\ghost\gh
将所有文件夹取其名称前两位重命名的批处理脚本:复制代码代码如下:@echooff&setlocalenableDelayedExpansionsetn=4102
基于之前的文章方法,加入批处理命令即可实现自动备份。只是由于批处理命令中对于备份文件的名字按照时间命名比较特别,所以特别整理一文。1、复制date文件夹备份==