批处理删除文件或列出文件用

自动删除几天前的文件

Windows 2003 2008测试通过

通过forfiles命令找到几天前的数据。

forfiles的几个参数:

/P 可是搜索的路径。在我们这里就是要在哪个目录寻找要删除的文件
/M 根据搜索掩码搜索文件。默认为*,我们要删除某时间以前的文件。我们只关心时间。
/D 文件修改时间在某个时间之前或者之后。-200 表示200天之前的文件。
/C 表示为每个文件执行的命令,这里是要删除该文件所以为"cmd /c del /F /s /q @file"。其中变量@file表示该文件名。

综上所述,得出下列脚本:

@echo off
echo Del file :::::::::
echo forfiles /P D:\test\DATA /M * /S /D -200 /C "cmd /c del /F /s /q @file"
echo forfiles /P D:\test\DATA /D -200 /C "cmd /c del @file"

echo done
echo . & pase

在linux下可以用find 命令来查找:
find ./ -ctime 1 -name “*mail” -exec rm {} \;
删除一天前修改的文件。

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打开该文件,关闭后开启下一个文件。

forfiles /m *.log /c "cmd /c del @file"
forfiles /m *.log /c "cmd /c if @fsize geq 1000000 (del @file)"
forfiles /m *.log /c "cmd /c if @fsize geq 1000000 (del @file) Else (move @file c:\archive)"
forfiles /m *.log /c "cmd /c if @fsize geq 1000000 (echo @file is 1MB or larger) Else (echo @file is 1MB less)"

时间: 2024-11-16 14:24:30

批处理删除文件或列出文件用的相关文章

批处理删除任意天之前的文件

背景:最近有新的项目,每天都生成大量的落地数据,几天下来磁盘就快满了,赶快删除,就想有没有可以自动删除的脚本呢?  于是找到如下的脚本结合计划任务,完美解决需求. 备注:本脚本只适合windows平台.  经测试windows2003/2008/8/8.1/10可以执行. forfiles /p "F:\110\20150613" /d -30 /c "cmd /c echo deleting @file ...&& del /f @path" /p

Windows定时删除某天前文件的批处理脚本

备注:1.如XP下因为没有forfiles.exe,拷贝windows2003下的forfiles.exe文件到XP的system32目录即可使用forfiles命令.  2.该文档适用于windows客户端操作系统xp win7/8/10,windows服务器端操作系统 server 2003/2008/2012/2016.3.如有错漏,烦劳指出,谢谢! forfiles.exe及帮助 描述:     选择一个文件(或一组文件)并在那个文件上执行一个命令.这有助于批处理作业. 语法: forf

批处理学习笔记(一)--删除几天的文件(forfile)

    在运维的过程中,我们经常要做的一项工作就是备份!在备份时,我们为了减少我们的工作量,所以要设备让它自动备份,若是增量备份还好,若不是,那时间长了,那备份文件会一直的增加,让硬盘的压力不断的增加了,所以我们有必要的把一些没有用的文件进行删除掉.         所以我们又加了一项工作:删除不必要的备份&删除一些旧的文件&删除过期的文件等. 现在我们测试下一下:使用系统自带的 (forfile)命令.         按时间来删除过期的旧文件. 现在先让我们认识下 (forfile的命

批处理删除7天以上的文件

windowns cmd :# 批处理删除7天以上的文件 :# 路径.天数.文件后缀 @echo off set lj="G:\test" set sj=-7 set wj=*.txt forfiles /p %lj% /s /m %wj% /d %sj% /c "cmd /c del @path"

用bat批处理程序通过DOS命令行删除所有的空文件夹

用过gothub或者码云的同学都知道,不包含任何文件的空文件夹上传提交时不被允许的.当然你可以在空文件下创建.keep文件(或.gitkeep文件),然后就可以上传了. 但是如果空文件夹比较多,并且我们确实不需要这些空文件了,那本文就学习一种命令行删除所有空文件夹的方法.并封装成.bat批处理程序.通过鼠标右键运行即可. 一,DOS删除命令 1.1,删除文件命令 del 若是想删除文件,输入del 盘符名:\文件名,比如,我想删除一个在F盘的名为123.txt的文件,则输入  del f:\12

python 实现彻底删除文件夹和文件夹下的文件

python 中有很多内置库可以帮忙用来删除文件夹和文件,当面对要删除多个非空文件夹,并且目录层次大于3层以上时,仅使用一种内置方法是无法达到彻底删除文件夹和文件的效果的,比较low的方式是多次调用直到删除.但是,我们可以结合多个内置库函数,达到一次删除非空文件夹,不管其目录层次有多深. import os import shutil import traceback import globalvar def misc_init() # clean the test result folder

Win10 系统删除文件时提示文件不存在

Win10系统使用一段时间后用户都会定期进行删除清理系统垃圾,减少系统盘的容量占用,但在删除的过程中许多用户都遇到无法删除的情况,这一次系统提示"文件不存在",这该怎么解决?我们可以利用批处理删除文件. 新建一个bat文件: DEL /F /A /Q \\?\%1 RD /S /Q \\?\%1 然后将文件夹拖动到该bat文件上,即可删除文件夹. 原文地址:https://www.cnblogs.com/chay/p/10923538.html

为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0

为什么NTFS删除超过4G大文件或数据库文件后FILE RECORD大小表现为0? 答:NTFS删除一个文件,必须要完成如下几个流程,才算完结: 1.更改文件系统$bitmap,释放空间 2.更改$mft filerecord项的属性为删除 3.更改$mft:$bitmap的位图信息为0,释放这个filerecord的占用空间 4.清除目录链表中关于本文件的item信息. 这个流程是理想状态下的处理规则,但实际上,最头疼的是OS要考虑这个问题:如果在上述4个步骤中出现中断(如突然断电.死机等),

shell学习四十一天----列出文件ls和od命令

列出文件 首先恶臭命令提供简单的方式列出匹配模式的文件: 命令: echo /bin/*sh #显示/bin下的shell 输出:/bin/bash /bin/csh /bin/dash /bin/sh /bin/tcsh 分析:shell将通配符字符模式替换为匹配的文件列表,echo以空格区分文件列表,在单一行上显示他们.echp不会更近一部解释他的参数,因此与文件系统里的文件也没有任何关系. ls命令则比echo能做更多的处理,因为他纸袋自己的参数应该是文件.未提供命令行选项时,ls只会验证