bat脚本:批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。
@echo off
::在d:\测试文件夹中删除5天前以日期为主名的txt文件
cd/d "d:\测试文件夹"
set/a n=5
set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
set/a d-=n
if %d% gtr 0 goto :ok
:ov
set/a "md=31-!(m-5)-!(m-7)-!(m-10)-!(m-12)-!(m-3)*(3-!(y&3))"
set/a d+=md,m-=1
if %m% equ 0 set/a m=12,y-=1
if %d% leq 0 goto :ov
:ok
set/a md=m*100+d+10000
set "ymd=%y%%md:~1%"
echo %n% 天前日期为%ymd%
set "s=20[0-9][0-9][0-1][0-9][0-3][0-9]"
for /f "delims=" %%i in (
'dir/b^|findstr/ix "%s%\.txt"') do (
if "%%~ni" leq "%ymd%" (del %%i&&echo %%i)
)
pause
@echo off
::在d:\测试文件夹中删除5天前以日期为主名的txt文件
cd/d "d:\测试文件夹"
set/a n=5
set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
set/a d-=n
if %d% gtr 0 goto :ok
:ov
set/a "md=31-!(m-5)-!(m-7)-!(m-10)-!(m-12)-!(m-3)*(3-!(y&3))"
set/a d+=md,m-=1
if %m% equ 0 set/a m=12,y-=1
if %d% leq 0 goto :ov
:ok
set/a md=m*100+d+10000
set "ymd=%y%%md:~1%"
echo %n% 天前日期为%ymd%
set "s=20[0-9][0-9][0-1][0-9][0-3][0-9]"
for /f "delims=" %%i in (
'dir/b^|findstr/ix "%s%\.txt"') do (
if "%%~ni" leq "%ymd%" (del %%i&&echo %%i)
)
pause
@echo off
cd/d "C:\test\"
set /a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
set /a "m=(m+9)%%12+4,y-=M/14,n=5"
set /a "JD=1461*Y/4+153*M/5+d-n,i=(JD*4-489)/1461,d=jd-1461*i/4,j=d*100/3061,d-=153*j/5-100,i+=j/14,j-=j/14*12-99"
set "str=%i%%j:~-2%%d:~-2%.txt"
for /f %%i in ('dir/b 201*.txt') do echo if "%%i" leq "%str%" del "%%i"
pause
@echo off
for /f "skip=5" %%i in ('dir/b/o-d 2013*.txt') do del "%%i"