分享

使用forfiles 删除几天前的数据

 湖畔书韵 2012-02-25
使用forfiles 删除几天前的数据
 
rem 删除前一天的历史数据
forfiles /m *.fc /s /D -1 /c "cmd /c del @file"

rem 删除当前目录下及其子目录中的空文件夹
for /f "tokens=*" %a in ('dir /b /ad /s E:\FileCache^|sort /r') do rd "%a" /q 2>nul

在批处理中把%改成%%
for /f "tokens=*" %%a in ('dir /b /ad /s E:\FileCache^|sort /r') do rd "%%a" /q 2>nul

Forfiles

windows server 2003内置命令

开关很少,p路径,m 方式,s包含子目录,c执行命令,d日期

普通使用可能比不上for,dir等, 但是c这个开关很强大的

command string:
@file    - returns the name of the file.
@fname   - returns the file name without extension.
@ext     - returns only the extension of the file.
@path    - returns the full path of the file.
@relpath - returns the relative path of the file.
@isdir   - returns "TRUE" if a file type is a directory, and "FALSE" for files.
@fsize   - returns the size of the file in bytes.
@fdate   - returns the last modified date of the file.
@ftime   - returns the last modified time of the file.


FORFILES /P C:\WINDOWS /S /M DNS*.*
列出windows及其子目录下DNS开头的所有文件

FORFILES /S /M *.txt /C "cmd /c type @file | more"
列出当前目录以及子目录下所有的txt文档的内容,并以分页的形式打印出来

FORFILES /P C:\ /S /M *.bat
列出windows及其子目录下的bat文件

FORFILES /D -30 /M *.exe /C "cmd /c echo @path 0x09 was changed 30 days ago"

列出30天内修 改过的exe文件,列出路径+自定义文字0x09(tab) was changed 30 days ago

FORFILES /D 2001/01/01 /C "cmd /c echo @fname is new since Jan 1st 2001"

列出 2001、0101后的文件并打印文档名字+is new since Jan 1st 2001

FORFILES /D +2009/4/10 /C "cmd /c echo @fname is new today"

列出20090410后修改过的文 件,并打印

FORFILES /M *.exe /D -1

列出一天前到现在修改过的exe文件
FORFILES /S /M *.doc /C "cmd /c echo @fsize"

列出doc文件,并打印出文件大小

FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"

列出txt文件, 如果不是文件夹,那么就依次用notepad打开该文件,关闭后开启下一个文件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多