想做一个计划任务,定期1个月清理d:\视频录像的资料。
但不知道如何写这样的BAT文件,请好心人帮助。
[ Last edited by sj2009 on 2009-12-16 at 16:56 ]
但不知道如何写这样的BAT文件,请好心人帮助。
[ Last edited by sj2009 on 2009-12-16 at 16:56 ]
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
for /f "tokens=3 delims=-:/ " %%i in ("%date%") do schtasks /create /tn "Hanyeguxing" /tr "cmd /c del d:\*.mpg /f /q /a" /sc monthly /d %%i
@echo off
:: 设置要处理几个月之内的(不包括这个月)
:: 小于 12 ,不然我没测试是否出错
set /a n=2
:: 设置要处理的文件的通配符表示(只能每次处理一个文件夹的)
set files=d:\视频录像的资料\20091201\*.*
color 17
title (C)2009 qinchun36 『据说是李先生』
setlocal enabledelayedexpansion
:init
set /a tty=%date:~0,4%
set /a ttm=%date:~5,2%
if %ttm% leq %n% (
set /a tsy=!tty!-1
set /a tsm=12+!ttm!-!n!
if !tsm! lss 10 set tsm=0!tsm!
set /a tsym=!tsy!!tsm!
) else (
set /a tsym=%date:~0,4%%date:~5,2%-!n!
)
set /a ts=!tsym!00
set /a te=%date:~0,4%%date:~5,2%00
echo.
echo 将要删除符合 『%files%』 的,
echo.
echo 『创建日期』在 %ts% 和 %te% 之间的文件!
echo.
set /p ching=是否继续?^(Y/N^)
if /i "!ching!"=="Y" goto process
exit
:process
echo.
echo =====================================================
for %%i in (%files%) do (
set f=%%~si
set fw=!f:\=\\!
for /f "skip=1 delims=." %%a in ('wmic datafile where name^='!fw!' get CreationDate') do set a=%%a
set /a ta=!a:~0,8!
if !ta! lss !te! (
if !ta! gtr !ts! (
echo 删除 !ta! !f!
del !f! /f /q
)
)
)
echo =====================================================
echo.
echo 处理完毕。
pause>nul
exit
for /f "skip=5 tokens=1,2,3,4,5,7* delims=-:/ " %%i in ('dir "路径" /a:-d /t:c') do if not "%%m" == "" if "%%i%%j%%k%%l%%m" gtr "时间1" if "%%i%%j%%k%%l%%m" lss "时间2" @del "路径\%%n%%o" /a /f /q>nul 2>nulfor /f "skip=5 tokens=1,2,3,4,5,7* delims=-:/ " %%i in ('dir "路径" /a:-d /t:c') do if not "%%m" == "" if "%%i%%j%%k%%l%%m" lss "时间" @del "路径\%%n%%o" /a /f /q>nul 2>nul@echo off&setlocal enabledelayedexpansion
set n=5
for /f "tokens=1,2 delims=-:/ " %%a in ("%date%") do (set a1=%%a&set a2=%%a&set b=%%b
if "%%b" lss "10" set b=!b:~1,1!)
set/a b1=%b%-%n%&set/a b2=%b%-1
if %b2% leq 0 set/a a2=%a2%-1&set/a b2=12
if %b2% leq 9 set b2=0%b2%
if %b1% leq 0 set/a a1=%a1%-1&set/a b1=12+%b1%
if %b1% leq 9 set b1=0%b1%
for /f "skip=5 tokens=1,2,3,4,5,7* delims=-:/ " %%i in ('dir "路径" /a:-d /t:c') do if not "%%m" == "" if "%%i%%j" geq "%b1%" if "%%i%%j" leq "%b2%" @del "路径\%%n%%o" /a /f /q>nul 2>nul@echo off
set a=d:\视频录像的资料
set t=201009021501
for /f "skip=5 tokens=1,2,3,4,5,7* delims=-:/ " %%i in ('dir "%a%" /a:-d /t:c') do if not "%%m" == "" if "%%i%%j%%k%%l%%m" lss "%t%" echo "%a%\%%n%%o"
echo 测试目录为%a%
echo 分隔时间为%t:~0,4%年%t:~4,2%月%t:~6,2%日%t:~8,2%时%t:~10,2%分
pause>nul