批量刪除90天前日期命名的資料夾 bat

2021-09-02 16:01:33 字數 1427 閱讀 7419

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

clsecho.&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

批量刪除90天前日期命名的資料夾 bat

d cd d msgstorageserver bulk echo off 求n天前的日期 思路 模擬手工運算,用日期數減去天數,差值為負時向高位借1。特點 簡潔,容易理解,速度快慢取決於指定的天數大小 setlocal enabledelayedexpansion main cls 日期可以帶星期...

獲取當前日期以及三天後的日期

var date new date 獲取當前時間 var year date.getfullyear 獲取當前年份 var month date.getmonth 1 獲取當前月 var day date.getdate 獲取當前日 var nowtime newday month day 當前日期...

js 獲取當前日期的後30天

開始時間 設定為今天 thu aug 01 2019 15 00 01 gmt 0800 中國標準時間 var startdate new date console.log startdate 初始化結束時間 var enddate new date console.log enddate getd...