当前位置: 首页 > 图文教程 > 脚本技术 > DOS/BAT > 用DOS批处理实现建立文件夹的代码

DOS/BAT
批处理制作照片整理器
可以生成SLEEP.EXE的延时命令的bat文件
用bat批量创建文件夹
bat批处理实现的创建10个文件夹,文件夹再包含5个空文件夹
bat延时执行命令的另一种方法
windows服务操作之删除服务 批处理实现
批处理 远程控制
使用批处理修改web打印设置笔记 适用于IE
批处理 结束麦咖啡进程的代码
cmd fsutil 命令新建空文本文件
cmd Tasklist与Tskill管理Windows系统进程
批处理 正则表达式(findstr) 整理
bat 文件 学习使用指南
for 语句从入门到精通
dos 目录跳转 cd
tree 以树形格式罗列文件
dos 内容重定向
dos if 条件判断
dos 流程跳转 goto
dos 文件复制 copy命令

DOS/BAT 中的 用DOS批处理实现建立文件夹的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 56 ::
收藏到网摘: n/a

题目:用DOS批处理实现建立文件夹
要求:1要求建立文件名格式为"YYYY1-MM1-DD1至YYYY2-MM2-DD2"的文件夹
2其中YYYY1-MM1-DD1是今天的日期;YYYY2-MM2-DD2是四天后的日期
解答:
复制代码 代码如下:

@echo off
rem 比较运算符: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于
rem 取模运算符: %% DOS的取模运算符(批处理文件里用%%,非批处理命令行下用%)
rem 日志文件夹名称初始值
set filelog=%date:~0,10%至
rem 后续日期的变量
set /A y=0
set /A m=0
set /A d=0
rem 取日期YYYYMMDD中的DD两位
set /A dd= %date:~8,2%
set /A ddp4= %dd% + 4
rem 取日期YYYYMMDD中的MM两位
set /A mm= %date:~5,2%
set /A mmp1= %mm% + 1
rem 取日期YYYYMMDD中的YYYY四位
set /A yyyy= %date:~0,4%
set /A yyyyp1= %yyyy% + 1
set /A yymd=yyyy %% 4
rem 如果是31天的月份( 1,3,5,7,8,10,12 )
rem 12 月特殊
if %mm% equ 12 (
if %ddp4% leq 31 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 31 (
if %mmp1% gtr 12 (
set /A y=%yyyy% + 1
set /A m= 1
set /A d=%ddp4% - 31
)
)
goto END
)
if %mm% equ 10 (
if %ddp4% leq 31 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 31 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 31
)
goto END
)
if %mm% equ 8 (
if %ddp4% leq 31 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 31 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 31
)
goto END
)
if %mm% equ 7 (
if %ddp4% leq 31 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 31 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 31
)
goto END
)
if %mm% equ 5 (
if %ddp4% leq 31 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 31 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 31
)
goto END
)
if %mm% equ 3 (
if %ddp4% leq 31 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 31 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 31
)
goto END
)
if %mm% equ 1 (
if %ddp4% leq 31 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 31 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 31
)
goto END
)
rem 如果是30天的月份( 4,6,9,11 )
if %mm% equ 11 (
if %ddp4% leq 30 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 30 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 30
)
goto END
)
if %mm% equ 9 (
if %ddp4% leq 30 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 30 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 30
)
goto END
)
if %mm% equ 6 (
if %ddp4% leq 30 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 30 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 30
)
goto END
)
if %mm% equ 4 (
if %ddp4% leq 30 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 30 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 30
)
goto END
)
rem 如果是28或29天的月份( 2 )
if %mm% equ 2 (
if %yymd% equ 0 (
if %ddp4% leq 29 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 29 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 29
)
goto END
)
if %ddp4% leq 28 (
set /A y=%yyyy%
set /A m=%mm%
set /A d=%ddp4%
)
if %ddp4% gtr 28 (
set /A y=%yyyy%
set /A m=%mmp1%
set /A d=%ddp4% - 28
)
)
rem 组合文件夹名称,并建立文件夹
:END
if %m% lss 10 set filelog=%filelog%%y%-0%m%
if not %m% lss 10 set filelog=%filelog%%y%-%m%
if %d% lss 10 set filelog=%filelog%-0%d%
if not %d% lss 10 set filelog=%filelog%-%d%
mkdir %filelog%