d:
cd D:\MsgStorageServer\Bulk
@echo off
:: 求N天前的日期
:: 思路:
:: 模拟手工运算,用日期数减去天数,差值为负时向高位借1。
:: 特点:
:: 代码简洁,容易理解,速度快慢取决于指定的天数大小
setlocal enabledelayedexpansion
:Main
cls
:: 日期可以带星期,但是,必须以年月日的顺序排列
:: 年份必须是四位,否则会出错
set day=%date%
set days=0
echo.&echo.
echo 指定的日期是:%day%
echo.
::set /p input= 请指定要追溯的天数:
set input=90
:: 提取日期
for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do (
set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100
)
set /a sd-=input
if %sd% leq 0 call :count
cls
echo.&echo.
echo 指定的日期是:%day%
echo.
set sm=0%sm%
set sd=0%sd%
echo %input% 天前的日期是:%sy%-%sm:~-2%-%sd:~-2%
echo 删除文件夹 %sy%%sm:~-2%%sd:~-2%
del /s /q %sy%%sm:~-2%%sd:~-2%
rd /s /q %sy%%sm:~-2%%sd:~-2%
::pause>nul
:count
set /a sm-=1
if !sm! equ 0 set /a sm=12, sy-=1
call :days
set /a sd+=days
if %sd% leq 0 goto count
goto :eof
:days
:: 获取指定月份的总天数
set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
set /a max=28+leap
set num=0
set str=31 %max% 31 30 31 30 31 31 30 31 30 31
for %%i in (%str%) do (
set /a num+=1
if %sm% equ !num! set days=%%i&goto :eof
)
goto :eof
相关推荐
创建100个文件.bat 创建文件夹.bat 创建日期文件夹.bat 提取文件名.bat
新建多个文件夹.bat
将一个文件复制到多个文件夹
win10去除桌面七个文件夹.bat
一秒新建多个文件夹.bat
将要建得文件夹编辑好双击运行
Windows命令bat快速批量创建文件夹,用文本打开简单修改代码即可实现。
batbat判断进程是否存在,存在结束进程
删除盘符中多余的空白文件夹的一个小的批处理
批量删除svn文件夹及文件.bat )
批量移动子文件夹到上级目录
文件夹同名病毒专杀.bat文件夹同名病毒专杀.bat文件夹同名病毒专杀.bat
在这个场景中,"创建日期文件夹.bat"很可能是用来自动化创建具有当前日期命名的文件夹的批处理脚本。 创建这样的批处理文件通常涉及以下步骤: 1. 使用记事本或其他文本编辑器打开新的文档。 2. 输入命令`mkdir %...
59个超级实用的bat语言,bat批处理快速精简高效,我用bat节约生命
就是想上传点东西:压缩包含 0批处理文件名字符替换.bat—— 1关机.bat—— 1取消18点关机 .bat—— ...M批量变换同文件夹swf后缀变ja.bat—— T批量提取文件夹内文件名到LIST.bat—— 只复制文件夹结构.bat——
"startup.bat 闪退问题解决办法" startup.bat闪退问题是Windows操作系统中一种常见的故障现象,特别是在使用Tomcat服务器时。这种问题的出现可能是由于多方面的原因,包括系统配置、环境变量、文件权限、命令语法等...
去除当前磁盘空白文件夹
批量移动歌曲到文件夹外.bat
bat 删除指定文件夹中若干天前的文件 其中文件名末尾是日期格式, 例子中是删除指定文件夹中7天前的文件
批量删除文档中空格并生成当前文件夹中文件名 说明:1.把BAT复制到需要删除及提取文件名的文件夹;2.双击运行;3.运行后该文件夹下包含空格的文件名会被删除包含的空格符;4.生成的EXECL中就是当前文件夹下的所有一...