标题: [文件操作] [已解决]批处理怎样删除指定文件 ? [打印本页]
作者: mj_l 时间: 2011-10-17 10:25 标题: [已解决]批处理怎样删除指定文件 ?
本帖最后由 mj_l 于 2011-11-17 20:33 编辑
批处理删除符合下面所有要求的文件:
1、小于 100mb
2、大于 200mb
3、扩展名是 rar
4、10天前
作者: wc726842270 时间: 2011-10-17 10:55
是有难度啊·如果再看见的话,也许会更有难度
作者: 920168 时间: 2011-10-17 11:09
本帖最后由 920168 于 2011-10-20 12:18 编辑
见8楼
</br>
</br>
作者: 545810831 时间: 2011-10-17 12:31
回复 2#
解决问题的思路应该是找到10天以前rar文件,大于200mb 或小于100mb 都删除掉
作者: Batcher 时间: 2011-10-17 13:31
回复 3# 920168
如果今天是2011-11-01,你的代码能算出10天前吗?
作者: mj_l 时间: 2011-10-17 22:52
求完善功能!
作者: 920168 时间: 2011-10-18 16:47
回复 5# Batcher
谢谢提醒,如果创建日期和今天是不同月同号,也算不出来!
作者: 920168 时间: 2011-10-18 20:59
本帖最后由 920168 于 2011-10-20 12:02 编辑
没有测试,希望大家看到代码别笑,就这水平!3楼的代码我写之前没有理解LZ的意思!谢谢“545810831 ”提醒!!- echo off
- cls
- echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbs
- for /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do (
- set y=%%i
- set m=%%j
- set d=%%k
- )
- if %m% LSS 10 set m=0%m%
- if %d% LSS 10 set d=0%d%
- set OldDate=%y%-%m%-%d%
- del GetOldDate.vbs
- for /r %%a in (*.rar) do for /f "tokens=1,2* delims= " %%b in (
- 'dir /tc "%%a" ^| find /i "%%~nxa"') do (
- if "%%b" lss "%OldDate%" echo "%%a">>10.txt
- )
- IF not EXIST "10.txt" exit
- ::
- for /r %%a in (*.rar) do if %%~za gtr 209715200 echo "%%a">>200.txt
- for /r %%a in (*.rar) do if %%~za LSS 104857600 echo "%%a">>100.txt
- IF not EXIST "200.txt" cd.>200.txt
- IF not EXIST "100.txt" cd.>100.txt
- copy /b 200.txt + /a 100.txt 200100.txt
- del /q /s 200.txt
- del /q /s 100.txt
- ::
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('type "10.txt"') do (
- set var1=%%i
- for /f "delims=" %%a in ('type "200100.txt"') do (
- set var2=%%a
- if /i "!var2!"=="!var1!" echo !var1!>>del.txt
- ))
- del /q /s 200100.txt
- del /q /s 10.txt
- ::
- @echo off & setlocal EnableDelayedExpansion
- set j=0
- for /f "delims=""" %%i in (del.txt) do (
- set /a j+=1
- set con!j!=%%i
- call set a=%%con!j!%%
- del /Q /s !a!
- )
- del /q /s del.txt
复制代码
作者: mj_l 时间: 2011-10-21 18:38
回复 8# 920168
不好意思,之前的意思表达错了,应该是:
1、小于 100mb 的所有 rar 文件都删除
2、大于 200mb 的所有 rar 文件都删除
3、10天前 的所有 rar 文件都删除
不用符合所有要求才删。
作者: 920168 时间: 2011-10-21 19:08
本帖最后由 920168 于 2011-10-21 19:23 编辑
回复 9# mj_l
把它放于要删除的文件夹下,运行就好了- echo off
- cls
- echo wscript.echo dateadd("d",-10,date)>GetOldDate.vbs
- for /f "tokens=1,2,3* delims=-/. " %%i in ('cscript /nologo GetOldDate.vbs') do (
- set y=%%i
- set m=%%j
- set d=%%k
- )
- if %m% LSS 10 set m=0%m%
- if %d% LSS 10 set d=0%d%
- set OldDate=%y%-%m%-%d%
- del GetOldDate.vbs
- for /r %%a in (*.rar) do for /f "tokens=1,2* delims= " %%b in (
- 'dir /tc "%%a" ^| find /i "%%~nxa"') do (
- if "%%b" lss "%OldDate%" del /s /q "%%a"
- )
- ::
- for /r %%a in (*.rar) do if %%~za gtr 209715200 del /s /q "%%a"
- ::
- for /r %%a in (*.rar) do if %%~za LSS 104857600 del /s /q "%%a"
- exit
复制代码
作者: Batcher 时间: 2011-10-21 22:37
回复 9# mj_l
请把所有的需求更新到顶楼
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |