删除指定日期文件的批处理脚本

合集下载

在Windows系统上自动删除指定大小的文件

在Windows系统上自动删除指定大小的文件

在Windows系统上自动删除指定大小的文件在Windows系统上,我们经常需要清理磁盘空间以确保电脑的良好运行。

而其中一个常见的需求就是自动删除指定大小的文件。

本文将介绍如何在Windows系统上使用批处理脚本自动删除指定大小的文件,以帮助我们有效地管理磁盘空间。

一、创建批处理脚本文件要实现自动删除指定大小的文件,我们可以使用Windows系统自带的批处理功能。

按照以下步骤创建一个批处理脚本文件:1. 打开文本编辑器,例如记事本。

2. 在编辑器中输入以下代码:```@echo offsetlocal enabledelayedexpansionset directory=C:\path\to\your\directoryset size=1000000for /r "%directory%" %%f in (*) do (set "file=%%f"set "size=%%~zf"if !size! gtr %size% (echo Deleting file: !file!del "!file!" /f /q))endlocal```请注意将 `C:\path\to\your\directory` 替换为你要清理的文件夹路径,将 `1000000` 替换为你想要删除的文件大小的阈值(以字节为单位)。

3. 将文件保存为批处理脚本文件,例如 `delete_files.bat`。

确保文件扩展名为 `.bat`。

二、运行批处理脚本文件当你运行这个批处理脚本文件时,它将自动删除指定大小的文件。

1. 双击运行 `delete_files.bat` 文件。

2. 批处理脚本将开始执行,遍历指定文件夹及其子文件夹。

对于每个文件,它将检查其大小是否大于指定的阈值。

3. 如果文件大小超过了阈值,脚本将在命令行窗口中显示 "Deleting file: 文件路径" 的消息,并删除文件。

批处理脚本自动清理Windows临时安装文件夹

批处理脚本自动清理Windows临时安装文件夹

批处理脚本自动清理Windows临时安装文件夹随着时间的推移和软件的安装卸载,Windows系统中的临时安装文件夹会逐渐积累,占据硬盘空间,影响系统运行速度和稳定性。

为了解决这个问题,我们可以编写一个批处理脚本,自动清理Windows临时安装文件夹,提高系统性能。

步骤一:创建批处理脚本文件首先,我们需要创建一个文本文件,后缀改为.bat,例如"clean_temp.bat"。

然后,将以下代码复制到文本文件中:@echo offecho 正在清理临时文件夹...echo 请稍等...RD /S /Q "%temp%\*"RD /S /Q "%windir%\Temp\*"echo 清理完成!pause步骤二:保存并运行批处理脚本文件保存好批处理脚本文件后,双击运行它。

此时,系统会自动执行脚本中的命令。

步骤三:清理临时安装文件夹批处理脚本会自动清理Windows系统中的两个临时安装文件夹:%temp%和%windir%\Temp。

这两个文件夹是系统默认的临时文件夹,在这里存储着软件安装时产生的临时文件。

使用RD命令,带上参数/S /Q可以删除文件夹及其所有子文件夹和文件,并且不需要用户进行确认。

清理完成后,批处理脚本会显示"清理完成!"的提示信息,并暂停,等待用户按下任意键关闭窗口。

需要注意的是,批处理脚本会将这两个临时文件夹完全清空,所以请确保在执行脚本之前,已保存好需要保留的文件。

步骤四:将批处理脚本设置为定时任务如果希望定期清理临时安装文件夹,我们可以将批处理脚本设置为Windows的定时任务。

1. 打开"任务计划程序",在左侧面板中点击"创建任务"。

2. 在"常规"选项卡中,填写任务的名称和描述。

3. 切换到"触发器"选项卡,点击"新建"创建新的触发器。

用批处理文件删除n天前的文件 DEL

用批处理文件删除n天前的文件 DEL

用批处理文件删除n天前的文件DELforfiles /p <目标目录名> /d <天数> /c <执行的命令>看看列出的三个参数都有什么用处:/p 指定了要在哪个目录里查找文件,默认是当前工作目录,注意不能在目录名后面加斜杠。

/d 指定一个日期或天数,用于比较文件的最后修改日期是否符合条件。

/c 对每个找到的文件执行的命令。

例1.要把在C盘根目录下最后修改日期大于或等于2007年7月1日的文件复制到D盘根目录下:forfiles /p "c:" /d "2007-7-1" /c "cmd /c copy @path d:/"例2.删除在C盘backup目录下最后修改日期在10天前的文件:forfiles /p "c:/backup" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"看了上面的例子,觉得在Windows Server 2003 下面要删除老文件很简单吧。

但如果操作系统是Windows 2000/XP 就比较麻烦,因为它们没有forfiles命令,只能靠自己写批处理来实现了。

下面是我写的批处理文件内容:@echo offrem ******************************rem * 按时间删除文件目录的批处理*rem ******************************rem 设置临时目录的路径set tempDir=%tmp%/remove_%date:~0,10%if not exist %tempDir% md %tempDir%rem 设置处理日期的脚本文件的路径set scriptFile=%tempDir%/get_date.vbsrem 获得要保留的天数set days=%~1if "%days%" == "" goto printUsagerem 获得目标目录的路径set dirPath=%~2if "%dirPath%" == "" set dirPath=.rem 获得要操作的文件形式set fileSpec=%~3if "%fileSpec%" == "" set fileSpec=*.*rem 生成计算日期的脚本文件并获得删除的截止日期echo d=date()-%1 > %scriptFile%echo s=right("0000" ^& year(d),4) ^& "-" ^& right("00" ^& month(d),2) ^& "-" ^& right("00" ^& day(d),2) >> %scriptFile%echo wscript.echo s >> %scriptFile%for /f %%i in ('cscript /nologo %scriptFile%') do set lastDate=%%irem 处理目标目录里的每个对象for /f "tokens=1,2,3* delims=<> " %%i in ('dir "%dirPath%/%fileSpec%" /a /-c /tc') docall :proc "%%i" "%%j" "%%k" "%%l"goto :donerem 处理目标目录里对象的过程:procrem 获得对象的创建日期并判断是否为有效格式set fileDate=%~1echo %fileDate% | findstr "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]" > nulif errorlevel 1 goto endrem 获得对象的类型set fileType=%~3if "%fileType%" == "" goto endrem 获得对象的名称set fileName=%~4if "%fileName%" == "" goto endif "%fileName%" == "." goto endif "%fileName%" == ".." goto endif "%fileName%" == "字节" goto endif "%fileName%" == "可用字节" goto endrem 判断对象日期是否小于或等于删除的截止日期if "%fileDate:~0,10%" leq "%lastDate%" (echo deleting "%fileName%" ...if "%fileType%" == "DIR" ( rd /s /q "%dirPath%/%fileName%" ) else ( del /q /f"%dirPath%/%fileName%" ))goto end:errorecho An error occurred during backuping.:donerd /s /q %tempDir%goto end:printUsageecho Usage: %0 ^<Days^> [Work directory] [Target file specification (can include wildcards)]goto end:end这个批处理的语句很多,我表达能力有限,不一一解释了。

bat批处理之文件与文件夹操作代码(附xcopy命令详解)

bat批处理之文件与文件夹操作代码(附xcopy命令详解)

本文介绍下,在批处理脚本中,操作文件与文件夹的方法,包括文件的复制、删除、移动等操作,并附有xcopy命令的详细用法,有需要的朋友参考下吧批处理中的文件、文件夹操作,xcopy命令的用法。

一,建bat文件自动执行复制,删除命令。

例1:复制cd.dll文件至windows\system32的bat文件内容:代码如下:copy cd.dll %windir%\system32例2:卸载windows\system32目录中的cd.dll,即把上面复制的文件删除:代码如下:del %windir%\system32\cd.dll例3:删除download文件夹中的文件,例子如下:代码如下:del c:\download\*.*注意,以处的del命令只能删文件,不能删文件夹。

删除文件夹使用rd命令,如下:代码如下:&gt;rd filemon这里filemon文件夹和该bat文件在同一目录下,就省去具体路径了。

但rd只能删除空文件夹.要删除文件夹及其里面的所有子目录和文件,用rd命令带/s /q参数,/s参数表示删除该文件夹及其下面的子目录和文件/q参数表示,不需要确认例子:代码如下:rd 123 /s /q二,创建文件夹例:在e:\my documents下面一次创建3个新文件夹:newfolder1,newfolder2,newfolder3 代码如下:@echo offmd e:\my documents\newfolder1md e:\my documents\newfolder2md e:\my documents\newfolder3三,执行程序,打开文件例1:执行c盘下的winword.exe程序代码如下:start c:\winword.exe例2:用某个程序打开某个文件,如用theworld.exe打开一个htm文件复制代码代码如下:start d:\theworld\theworld.exe c:\我有一个恋爱.htm[注意]:不论是程序或文件路径中含有空格,都必须用引号括起来:代码如下:start d:\theworld\theworld.exe e:\my documents\我有一个恋爱.htm所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭汉字输入系统xcopy 还有众多的功能,是加参数来完成的。

windows应用场景下自动删除指定类型文件的批处理脚本

windows应用场景下自动删除指定类型文件的批处理脚本

windows应用场景下自动删除指定类型文件的批处理脚本在Windows应用场景下,自动删除指定类型文件的批处理脚本批处理脚本是一种在Windows系统下运行的脚本文件,可以用于自动化地执行一系列指定的命令和操作。

在日常使用电脑的过程中,我们经常会遇到需要删除一些指定类型的文件的情况,而手动一个一个删除费时费力,这时候就可以借助批处理脚本来实现自动删除指定类型文件的操作。

以下是一个参考的批处理脚本示例,可根据实际需求进行修改和定制:```@echo offset "target_folder=C:\Users\YourUsername\Documents" // 设置目标文件夹路径,将YourUsername替换为你的用户名set "file_type=.txt" // 设置目标文件类型,比如删除所有的文本文件,可以将.txt替换为.docx或其他类型echo 正在删除 %target_folder% 目录中的所有 %file_type% 文件...cd /d %target_folder%del /s /q *%file_type%echo 删除完成!pause```解释说明:1. `@echo off` :此命令用于关闭回显,即在执行脚本时不将脚本的命令显示出来。

2. `set "target_folder=..."` :此行用于设置目标文件夹路径,你需要将其中的"..."替换为你想要删除文件的目标文件夹的路径,确保路径正确且存在。

3. `set "file_type=..."` :此行用于设置目标文件类型,你需要将其中的"..."替换为你想要删除的文件类型,比如".txt"、".docx"等。

4. `echo ...` :此行用于在命令行界面中显示一些信息,比如正在删除的文件路径。

自动清理固定目录的文件及文件夹的VBS代码

自动清理固定目录的文件及文件夹的VBS代码

自动清理固定目录的文件及文件夹的VBS代码说明:(1)可根据需要修改保留文件及目录的规则,再用任务计划定时执行delete3filex.vbs文件。

(2)注意修改文件前面目录定义:deletepath="D:\Public\" '----------[删除目录]-------根据实际情况更改ruletxtpath="D:\Share\ruletxt.txt" '----------[规则文件路径]------根据实际情况更改deltimetype="d" '--[判断类型]---- yyyy年q 季m 月y 一年的日数d 日w 一周的日数ww周h 时n 分钟s 秒deltimenum=3 '--[保留时间数]--------根据实际情况更改,当类型为天,则为3天。

logtxtname="D:\Share\del3daylog.txt" '[删除日志记录文件]--------根据实际情况更改operatelogtxt="D:\Share\operatelog.txt" '[运行日志记录文件]--------根据实际情况更改1、规则文件:ruletxt.txt内容(以下内容直接存于ruletxt.txt文件):会议资料,工作流程,端口,操作说明-XP版.doc,文件管理.pptAdministrator,jz.zhudll,sys,steup,HH,测试,不Aministrator,everyone,Everyone--------文件说明,以下内容请勿删除---------文件规则说明:第一行表示不删除的文件及文件夹的关键字第二行表示不删除的文件及文件夹的所有者2、规则文件:delete3filex.vbs代码内容(以下内容直接存于delete3filex.vbs文件):'vervion:V0910-1 //1.加入删除日志记录功能;2.删除目录存在判断;3.日志写入错误捕获'//20120831增加公用常量deletepath[删除目录] ruletxtpath[规则文件路径]'//20120828 /增加通过文件夹,文件的所有者来控制删除动作;'20120828/1.增加删除规则,规则由记事本文件ruletxt.tx定义,对文件夹和文件同时适用[也可考虑分别用不同的文件定义规则;'修改内内容:1.改写删除目录函数与删除文件函数2.说明:n表示分钟,h表示小时;'Last date 2012/08/15dim deletepath,ruletxtpath,deltimetype,deltimenum,logtxtname,operatelogtxtdeletepath="D:\Public\" '----------[删除目录]-------根据实际情况更改ruletxtpath="D:\Share\ruletxt.txt" '----------[规则文件路径]------根据实际情况更改deltimetype="d" '--[判断类型]---- yyyy年q 季m 月y 一年的日数d 日w 一周的日数ww周h 时n 分钟s 秒deltimenum=3 '--[保留时间数]--------根据实际情况更改logtxtname="D:\Share\del3daylog.txt" '[删除日志记录文件]--------根据实际情况更改operatelogtxt="D:\Share\operatelog.txt" '[运行日志记录文件]--------根据实际情况更改'-------------------------运行日志开始部分------------------on error resume next '打开错误捕获Set operatelogfso = CreateObject("Scripting.FileSystemObject")Set operateobjStream = operatelogfso.OpenTextFile(operatelogtxt,8,true)'打开文件,不存在则创建if Err.number<>0 then '错误说明'WScript.Echo "运行日志文件不存在!"Wscript.quitErr.clear '清除err对象的内容end ifoperateobjStream.WriteLine("---------------------------------------------------------") operateobjStream.WriteLine(now()&" 程序开始执行!")'------------删目录---------------Function DeleteFolder()operateobjStream.WriteLine(now()&" 判断目录删除开始!")Dim objFSO,objFolder,strPath,targetFSO,subFSO,DirPathDirPath = deletepath'DirPath = "C:\Temp\Temp\"Set objFSO = CreateObject("Scripting.FileSystemObject")If objFSO.FolderExists(DirPath) ThenoperateobjStream.WriteLine(now()&" 删除目录存在!")'WScript.Echo "删除目录存在!"elseoperateobjStream.WriteLine(now()&" 删除目录不存在,程序执行结束!") 'WScript.Echo "删除不目录存在!"Wscript.quitEnd IfSet targetFSO = objFSO.GetFolder(DirPath)Set subFSO = targetFSO.SubFolders''WScript.Echo "2!"For Each subFolder in subFSOoperateobjStream.WriteLine(now()&" 取得所有目录名!")'If DateDiff("n",subFolder.DateCreated,now)>1 ThenIf DateDiff(deltimetype,subFolder.DateCreated,now)>deltimenum Then operateobjStream.WriteLine(now()&" 对大于某时间的目录进行删除目录条件判断开始!")'-----读取规则文件dim objtxt,objWorkbook,txtbookline,txtbookline1,delfieleID 'delfieleID表示删除标志delfieleID="true" '默认是允许删除Set objtxt=CreateObject("Scripting.FileSystemObject")'Set objWorkbook=objtxt.OpenTextFile("D:\Share\Public\ruletxt.txt",1,true)'Set objWorkbook=objtxt.OpenTextFile("E:\ruletxt.txt",1,true)Set objWorkbook=objtxt.OpenTextFile(ruletxtpath,1,true)'txtbookline=Trim(Split(Trim(objWorkbook.ReadLIne),"|")) 'Split返回一个一维数组ifobjWorkbook.AtEndOfStream<>true thentxtbookline=objWorkbook.ReadLIneoperateobjStream.WriteLine(now()&" 读取关键字规则成功!规则是:["&txtbookline&"]")end iftxtbookline1=Split(txtbookline,",")'WScript.Echotxtbookline'WScript.EchouBound(txtbookline1)operateobjStream.WriteLine(now()&" 关键字规则判断开始!")fori=0 to uBound(txtbookline1)ifInStr(1,,txtbookline1(i))>0 thendelfieleID="false"Exit forelseend ifnextobjWorkbook.CloseifdelfieleID="true" thenoperateobjStream.WriteLine(now()&" ["&&"] 符合关键字删除规则!")elseoperateobjStream.WriteLine(now()&" ["&&"] 不符合关键字删除规则!")end ifoperateobjStream.WriteLine(now()&" 关键字规则判断结束!")'-----规则遍历结束,满足条件已删除operateobjStream.WriteLine(now()&" 目录所有者规则判断开始!")'--------------------------判断文件夹所有者开始-------------'dim objtxt,objWorkbook,txtbookline,txtbookline1,delfieleID 'delfieleID表示删除标志'delfieleID="true" '默认是允许删除Set objtxt=CreateObject("Scripting.FileSystemObject")'Set objWorkbook=objtxt.OpenTextFile("E:\ruletxt.txt",1,true)Set objWorkbook=objtxt.OpenTextFile(ruletxtpath,1,true)'txtbookline=Trim(Split(Trim(objWorkbook.ReadLIne),"|")) 'Split返回一个一维数组objWorkbook.SkipLine() '跳过第一行ifobjWorkbook.AtEndOfStream<>true thentxtbookline=objWorkbook.ReadLIneoperateobjStream.WriteLine(now()&" 读取所有者规则成功!规则是!["&txtbookline&"]") end iftxtbookline1=Split(txtbookline,",")'WScript.Echotxtbookline'WScript.EchouBound(txtbookline1)'取得将要删除文件夹的所有者dimstrFileName,FileOwnerstrFileName = DirPath& '完整路径名Set objWMIService = GetObject("winmgmts:")Set objFileSecuritySettings = _objWMIService.Get("Win32_LogicalFileSecuritySetting='" &strFileName& "'")intRetVal = objFileSecuritySettings.GetSecurityDescriptor(objSD)If intRetVal = 0 Then''WScript.Echo "Owner: " &objSD.Owner.Domain& "\" &FileOwner=Else''WScript.Echo "Couldn't retrieve security descriptor."FileOwner=""End Iffori=0 to uBound(txtbookline1)ifInStr(1,FileOwner,txtbookline1(i))>0 thendelfieleID="false"Exit forend ifnextobjWorkbook.CloseifdelfieleID="true" thenoperateobjStream.WriteLine(now()&" ["&&"] 符合目录所有者删除规则!")elseoperateobjStream.WriteLine(now()&" ["&&"] 不符合目录所有者删除规则!")end ifoperateobjStream.WriteLine(now()&" 目录所有者规则判断结束!")'--------------------------判断文件夹所有者结束,特定所有者不删除-----------ifdelfieleID="true" thenstrPath = DirPath&'WScript.Echo '------日志记录开始-----'三个参数的分别为:以只读模式打开文件、以只写方式打开文件、打开文件并在文件末尾进行写操作'ConstintForReading = 1,intForWriting = 2,intForAppending = 8on error resume next '打开错误捕获dimstrText,intForAppendingintForAppending=8strText="已删除目录:"&now()&" "&FileOwner&" "&Set logfso = CreateObject("Scripting.FileSystemObject")Set objStream = logfso.OpenTextFile(logtxtname,intForAppending,true)'打开文件,不存在则创建objStream.WriteLine(strText)objStream.CloseSet logfso = nothingSet objStream = nothingif Err.number<>0 then '错误说明'WScript.Echo "写入日志失败!"operateobjStream.WriteLine(now()&" ["&&"] 目录删除日志写入失败,停止程序运行!")Wscript.quitErr.clear '清除err对象的内容elseoperateobjStream.WriteLine(now()&" ["&&"] 目录删除日志写入成功!")'WScript.Echo "日志写入成功!"end if'------日志记录结束-----objFSO.DeleteFolder(strPath)operateobjStream.WriteLine(now()&" ["&&"] 目录删除成功!")'WScript.Echo "文件夹删除成功!"elseoperateobjStream.WriteLine(now()&" ["&&"] 目录不能删除!") 'WScript.Echo &" 文件夹不能删除!"end if'strPath = DirPath&''WScript.EchostrPath''WScript.Echo "4!"'objFSO.DeleteFolder(strPath)''WScript.Echo "5!"End IfNextoperateobjStream.WriteLine(now()&" 对大于某时间的目录进行删除目录条件判断结束!")End Function'------------删文件------------------Function DeleteFile()operateobjStream.WriteLine(now()&" 判断文件删除开始!")Dim objFSO,objFolder,strPath,targetFSO,subFSO,DirPathDirPath = deletepath'DirPath = "C:\Temp\Temp\"Set objFSO = CreateObject("Scripting.FileSystemObject")If objFSO.FolderExists(DirPath) ThenoperateobjStream.WriteLine(now()&" 删除目录存在!")'WScript.Echo "删除目录存在!"elseoperateobjStream.WriteLine(now()&" 删除目录不存在,程序执行结束!") 'WScript.Echo "删除不目录存在!"Wscript.quitEnd IfSet targetFSO = objFSO.GetFolder(DirPath)Set subFSO = targetFSO.FilesoperateobjStream.WriteLine(now()&" 取得所有文件名!")''WScript.Echo "12!"For Each subFiles in subFSOoperateobjStream.WriteLine(now()&" 对大于某时间的文件进行删除文件条件判断开始!")''WScript.Echo "13!"'If DateDiff("n",subFolder.DateCreated,now)>1 ThenIf DateDiff(deltimetype,subFiles.DateCreated,now)>deltimenum Then'-----------------读取规则文件------------------------dim objtxt,objWorkbook,txtbookline,txtbookline1,delfieleID 'delfieleID表示删除标志delfieleID="true" '默认是允许删除Set objtxt=CreateObject("Scripting.FileSystemObject")'Set objWorkbook=objtxt.OpenTextFile("D:\Share\Public\ruletxt.txt",1,true)'Set objWorkbook=objtxt.OpenTextFile("E:\ruletxt.txt",1,true)Set objWorkbook=objtxt.OpenTextFile(ruletxtpath,1,true)'txtbookline=Trim(Split(Trim(objWorkbook.ReadLIne),"|")) 'Split返回一个一维数组ifobjWorkbook.AtEndOfStream<>true thentxtbookline=objWorkbook.ReadLIneoperateobjStream.WriteLine(now()&" 读取关键字规则成功!规则是:["&txtbookline&"]")end iftxtbookline1=Split(txtbookline,",")'WScript.Echotxtbookline'WScript.EchouBound(txtbookline1)fori=0 to uBound(txtbookline1)ifInStr(1,,txtbookline1(i))>0 thendelfieleID="false"Exit forend ifnextobjWorkbook.CloseifdelfieleID="true" thenoperateobjStream.WriteLine(now()&" ["&&"] 符合关键字删除规则!")elseoperateobjStream.WriteLine(now()&" ["&&"] 不符合关键字删除规则!")end ifoperateobjStream.WriteLine(now()&" 关键字规则判断结束!")'-------------------规则遍历结束,满足条件已删除--------------------operateobjStream.WriteLine(now()&" 文件所有者规则判断开始!")'--------------------------判断文件所有者开始-------------'dim objtxt,objWorkbook,txtbookline,txtbookline1,delfieleID 'delfieleID表示删除标志'delfieleID="true" '默认是允许删除Set objtxt=CreateObject("Scripting.FileSystemObject")'Set objWorkbook=objtxt.OpenTextFile("E:\ruletxt.txt",1,true)Set objWorkbook=objtxt.OpenTextFile(ruletxtpath,1,true)'txtbookline=Trim(Split(Trim(objWorkbook.ReadLIne),"|")) 'Split返回一个一维数组objWorkbook.SkipLine() '跳过第一行ifobjWorkbook.AtEndOfStream<>true thentxtbookline=objWorkbook.ReadLIneoperateobjStream.WriteLine(now()&" 读取所有者规则成功!规则是!["&txtbookline&"]") end iftxtbookline1=Split(txtbookline,",")'WScript.Echotxtbookline'WScript.EchouBound(txtbookline1)'取得将要删除文件的所有者dimstrFileName,FileOwnerstrFileName = DirPath& '完整路径名Set objWMIService = GetObject("winmgmts:")Set objFileSecuritySettings = _objWMIService.Get("Win32_LogicalFileSecuritySetting='" &strFileName& "'")intRetVal = objFileSecuritySettings.GetSecurityDescriptor(objSD)If intRetVal = 0 Then''WScript.Echo "Owner: " &objSD.Owner.Domain& "\" &FileOwner=Else''WScript.Echo "Couldn't retrieve security descriptor."FileOwner=""End Iffori=0 to uBound(txtbookline1)ifInStr(1,FileOwner,txtbookline1(i))>0 thendelfieleID="false"Exit forend ifnextobjWorkbook.CloseifdelfieleID="true" thenoperateobjStream.WriteLine(now()&" ["&&"] 符合文件所有者删除规则!")elseoperateobjStream.WriteLine(now()&" ["&&"] 不符合文件所有者删除规则!")end ifoperateobjStream.WriteLine(now()&" 文件所有者规则判断结束!")'--------------------------判断文件所有者结束,特定所有者不删除-----------ifdelfieleID="true" thenstrPath = DirPath&'WScript.Echo '------日志记录开始-----'三个参数的分别为:以只读模式打开文件、以只写方式打开文件、打开文件并在文件末尾进行写操作'ConstintForReading = 1,intForWriting = 2,intForAppending = 8on error resume next '打开错误捕获dimstrText,intForAppendingintForAppending=8strText="已删除文件:"&now()&" "&FileOwner&" "&Set logfso = CreateObject("Scripting.FileSystemObject")Set objStream = logfso.OpenTextFile(logtxtname,intForAppending,true)'打开文件,不存在则创建objStream.WriteLine(strText)objStream.CloseSet logfso = nothingSet objStream = nothingif Err.number<>0 then '错误说明operateobjStream.WriteLine(now()&" ["&&"] 文件删除日志写入失败,停止程序运行!")'WScript.Echo "写入日志失败!"Wscript.quitErr.clear '清除err对象的内容elseoperateobjStream.WriteLine(now()&" ["&&"] 文件删除日志写入成功!") 'WScript.Echo "日志写入成功!"end if'------日志记录结束-----objFSO.DeleteFile(strPath)operateobjStream.WriteLine(now()&" ["&&"] 文件删除成功!") 'WScript.Echo "文件删除成功!"elseoperateobjStream.WriteLine(now()&" ["&&"] 文件不能删除!") 'WScript.Echo &" 文件不能删除!"end if'strPath = DirPath&''WScript.EchostrPath''WScript.Echo "14!"'objFSO.DeleteFile(strPath)''WScript.Echo "15!"End IfNextSet objFSO = nothingSet targetFSO = nothingSet subFSO = nothingEnd FunctionCall DeleteFolder()Call DeleteFile()operateobjStream.WriteLine(now()&" 程序执行完成!") operateobjStream.WriteLine("---------------------------------------------------------") setoperatelogfso = nothingsetoperateobjStream = nothing。

批处理bat文件实现复制、删除、创建文件夹、执行程序、打开文件

批处理bat文件实现复制、删除、创建文件夹、执行程序、打开文件

1 建bat文件自动执行复制,删除命令。

例1:以下是复制cd.dll文件至windows\system32的bat文件内容:copy cd.dll %windir%\system32例2:下面一行是卸载windows\system32目录中的cd.dll,即把上面复制的文件删除:del %windir%\system32\cd.dll例3:删除download文件夹中的文件,例子如下:del C:\DOWNLOAD\*.*[注意]:这里的del命令只能删文件,不能删文件夹。

要删除文件夹得用rd命令,如下:rd Filemon这里filemon文件夹和该bat文件在同一目录下,就省去具体路径了。

但rd只能删除空文件夹.要删除文件夹及其里面的所有子目录和文件,用rd命令带/s /q参数,/s参数表示删除该文件夹及其下面的子目录和文件/q参数表示,不需要确认范例如下:rd 123 /s /q2 创建文件夹例:在E:\My documents下面一次创建3个新文件夹:Newfolder1,Newfolder2,Newfolder3@echo offmd "E:\My documents\Newfolder1"md "E:\My documents\Newfolder2"md "E:\My documents\Newfolder3"3 执行程序,打开文件例1:执行C盘下的WinWord.exe程序start C:\WinWord.exe例2:用某个程序打开某个文件,如用TheWorld.exe打开一个htm文件start d:\TheWorld\TheWorld.EXE C:\我有一个恋爱.htm[注意]:不论是程序或文件路径中含有空格,都必须用引号括起来:start d:\TheWorld\TheWorld.EXE "e:\My documents\我有一个恋爱.htm"所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭汉字输入系统XCOPY 还有众多的功能,是加参数来完成的。

批处理清空文件内容

批处理清空文件内容

批处理清空文件内容批处理是一种在Windows操作系统中常用的命令行工具,它可以用来自动化执行一系列的操作。

其中,清空文件内容是批处理中的一项常见操作。

在本文中,我们将介绍如何使用批处理清空文件内容,并探讨其应用场景和注意事项。

让我们来看一下如何使用批处理清空文件内容。

假设我们要清空一个名为“test.txt”的文本文件,我们可以使用以下命令:echo. > test.txt这个命令的含义是将一个空行输出到标准输出流,并将其重定向到“test.txt”文件中。

由于输出的是一个空行,因此“test.txt”文件的内容就被清空了。

除了使用“echo”命令外,我们还可以使用“type”命令来清空文件内容。

具体来说,我们可以使用以下命令:type nul > test.txt这个命令的含义是将一个空文件的内容输出到标准输出流,并将其重定向到“test.txt”文件中。

由于输出的是一个空文件的内容,因此“test.txt”文件的内容也被清空了。

接下来,让我们来探讨一下批处理清空文件内容的应用场景。

一般来说,清空文件内容的操作常常用于日志文件、配置文件等需要定期清空的文件中。

例如,我们可以编写一个定时任务,每天清空一次日志文件,以保证日志文件的大小不会无限增长,从而影响系统性能。

当然,在使用批处理清空文件内容时,也需要注意一些事项。

首先,清空文件内容是一项具有破坏性的操作,因此在执行之前一定要确认自己的操作目标。

其次,清空文件内容可能会导致文件的元数据(如创建时间、修改时间等)发生变化,因此在某些场景下可能会影响到文件的使用。

最后,清空文件内容也可能会导致文件的恢复变得困难,因此在需要保留文件内容的情况下,应该选择其他的文件操作方式。

批处理清空文件内容是一项常见的操作,它可以帮助我们自动化执行一些定期清理的任务。

在使用时,我们需要注意操作目标、文件元数据和文件恢复等方面的问题,以确保操作的安全性和有效性。

Windows应用场景下自动清理临时文件的批处理脚本

Windows应用场景下自动清理临时文件的批处理脚本

Windows应用场景下自动清理临时文件的批处理脚本自动清理Windows应用场景下临时文件的批处理脚本在Windows操作系统中,临时文件是由各种应用程序在运行过程中自动生成的。

虽然这些临时文件在一定程度上帮助应用程序提高性能,但它们却占据了系统的存储空间,并且随着时间的推移,这些文件会越积越多,导致磁盘空间不断减少。

因此,定期清理临时文件对于保持系统的健康运行是非常重要的。

为了简化清理临时文件的过程,我们可以使用批处理脚本。

批处理脚本是一种由一系列命令组成的脚本文件,可以在Windows系统中自动执行。

下面是一个用于清理Windows应用场景下临时文件的批处理脚本的示例:```bash@echo offecho 正在清理Windows应用场景下的临时文件...echo.REM 清理Internet Explorer的临时文件echo 清理Internet Explorer的临时文件...echo."%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files\*.*"del /f /s /q"%USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache\*.*"del /f /s /q "%USERPROFILE%\AppData\Local\Temp\*.*"echo.REM 清理Google Chrome的临时文件echo 清理Google Chrome的临时文件...echo.del /f /s /q "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache\*.*"del /f /s /q "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Media Cache\*.*"del /f /s /q "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Code Cache\*.*"echo.REM 清理Microsoft Office的临时文件echo 清理Microsoft Office的临时文件...echo."%USERPROFILE%\AppData\Local\Microsoft\Office\*.tmp"del /f /s /q"%USERPROFILE%\AppData\Local\Microsoft\Office\Recent\*.*"del /f /s /q"%USERPROFILE%\AppData\Local\Microsoft\Office\UnsavedFiles\*.*"echo.echo 清理完成。

六种批处理删除指定天数日期之前的文件方案

六种批处理删除指定天数日期之前的文件方案

>>"%temp%\BackupDate.vbs" echo WScript.Echo WshShell.RegRead ("HKEY_CURRENT_USER\Control Panel\International\sShortDate")
for /f %%a in ('cscript /nologo "%temp%\BackupDate.vbs"') do (
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了 Ritchie Lawrence 的日期函数进行日期计算
::日期转换的核心算法请参考/thread-3056-1-1.html
::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,
::处理完毕之后再把日期格式恢复成原来的状态。
rem 指定待删除文件的存放路径
set SrcDir=C:\Test\BatHome
rem 指定天数
set DaysAgo=1
for /f "delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (

bat使用forfiles自动批量删除过期文件

bat使用forfiles自动批量删除过期文件

bat使⽤forfiles⾃动批量删除过期⽂件ftp服务器⽤于保存备份⽂件,但是也不需要每天的数据都留着,于是乎为了考虑节省硬盘空间,就必须删除⼀些⽼⽂件,只要保存最近⼀周或者⼀个⽉的就可以了windows⾃带了⼀个批量删除的程序,叫做forfiles,XP⾥貌似没有,博⽂最下⾯附件可以下载⾸先说⼀下我的应⽤吧,ftp服务器端每天备份数据⽂件后,只想保存最近两周的⽂件编写⼀个bat⽂件,内容如下写道@echo offrem write to logset filename=deletefile.logecho -------------------Delete Expired Log Files------------------------- >>%filename%echo Start >>%filename%echo (%date% %time%) >>%filename%echo Delete the expired log files in ⽬标⽬录路径1, Please wait... >>%filename%forfiles.exe /p "D:\Kugou" /m *.tar /d -14 /c "cmd /c del @path"echo End >>%filename%echo (%date% %time%) >>%filename%关键命令就这⼀条了:forfiles.exe /p "D:\Kugou" /m *.tar /d -14 /c "cmd /c del @path"这条命令的意思就是,搜索D:/Kugou⽬录下的任意后缀名为tar的⽂件,查看其⽇期属性是否为14天之前的(-14表⽰之前,+14表⽰之后),然后执⾏删除命令⼀开始⼀直在纠结这⽇期格式是怎么弄的,是不是forfiles是通过匹配⽂件名来删除的,结果⼀直在改⽂件名的⽇期显⽰格式,后来才发现偶智商如此低下,⼈家forfiles是windows⾃带的,尼玛明显能够智能的匹配⽂件⽇期属性啊。

用批处理删除N天前或指定日期时间(前后)创建(或修改)的文件

用批处理删除N天前或指定日期时间(前后)创建(或修改)的文件

⽤批处理删除N天前或指定⽇期时间(前后)创建(或修改)的⽂件核⼼代码:@echo off:: by oicu#:: 15:17 2011-1-13:: 如果只是删除指定⽇期或N天前修改的⽂件,⽤forfiles即可FORFILES /P "C:\测试⽬录" /S /M *.log /D -3 /C "cmd /c if @isdir==FALSE echo del @file":: 指定⽇期(包含)前修改的⽂件:/D -yyyy/mm/dd:: 以下是流⽔账:: 使⽤限制:控制⾯板⾥设定⽇期格式为中⽂(中国):: 只有dir /tc才能查看到⽂件创建时间,默认dir都是dir /tw:: 为了取出创建时间,只好⽤两次for+find,肯定很慢。

cd /d 你的⽬录:: 如果要包含⼦⽬录,⽤for /r . %%a in (*):: 显⽰⽂件修改时间for %%a in (*) do echo "%%~ta":: 中⽂格式时相当于for %%a in (*) do for /f "tokens=1,2* delims= " %%b in ('dir /tw "%%a" ^| find /i "%%~nxa"') do echo "%%b %%c":: 删除某个时间后修改过的⽂件(这个简单)for %%a in (*) do if "%%~ta" gtr "2008-04-01" echo del "%%a":: 这个才是显⽰⽂件创建时间for %%a in (*) do for /f "tokens=1,2* delims= " %%b in ('dir /tc "%%a" ^| find /i "%%~nxa"') do echo "%%b %%c":: 删除某个时间之后创建的⽂件,如果要删除某个时间之前创建的,更改两:: 处gtr为lss。

批处理清空文件内容

批处理清空文件内容

批处理清空文件内容随着计算机的不断发展,文件管理越来越重要。

随着时间的流逝,大多数目录和文件夹变得杂乱无序,无用的文件和不相关的数据不断积累,占据了大量的存储空间。

为此,我们需要清空文件内容,以便重新利用这些文件,或将其清除以释放空间。

批处理技术是一种简单有效的方法,可以用于自动化和批量处理文件。

批处理是一种计算机编程技术,可以用来自动化和批量处理多项任务。

批处理脚本是一些命令的集合,它们按照指定的顺序运行,以完成某些任务。

批处理脚本可以节省时间和精力,特别是在需要处理大量文件时。

清空文件内容是批处理中的一项常见任务。

清除文件内容的方法有多种,例如手动删除、使用Windows自带的清理工具、使用第三方清理软件等等。

但是,使用批处理来清除文件内容是一种更为高效和可控的方法。

以下是一个清空文件内容的批处理脚本示例:```@echo offset /p path="请输入文件路径和名称:"echo. > %path%echo 清空完成!pause>nul```上述脚本定义了一个变量“path”,该变量是通过用户输入的方式获取。

然后,使用“echo”命令将一个空行写入指定的文件中,将文件内容清空。

最后,脚本输出一条“清空完成”的信息,等待用户按任意键后退出。

批处理脚本还可以使用条件语句、循环语句和其他命令来实现复杂的文件内容清空任务。

例如:```@echo offset /p dir="请输入文件夹路径:"for /F %%i in ('dir /B %dir%') do (echo. > %dir%\%%i)echo 清空完成!pause>nul```该脚本首先要求用户输入一个文件夹路径。

然后,使用“for”循环迭代文件夹中的所有文件,为每个文件输出一个空行,从而将其内容清空。

最后,脚本输出一条“清空完成”的信息,等待用户按任意键后退出。

linux系统中删除时间段的文件命令

linux系统中删除时间段的文件命令

linux系统中删除时间段的文件命令全文共四篇示例,供读者参考第一篇示例:在Linux系统中,删除时间段的文件是一个非常常见的操作。

用户可能需要删除某一特定时间段内的文件,例如删除一周前的日志文件或者删除一个月之前的临时文件。

在这篇文章中,我们将介绍如何在Linux系统中使用命令来删除时间段内的文件。

在Linux系统中,我们可以使用find命令来查找符合某一特定时间段条件的文件,然后再使用rm命令来删除这些文件。

find命令是一个非常强大的命令行工具,它可以根据文件的一系列属性来查找符合条件的文件。

在这里,我们将介绍如何使用find命令来查找时间段内的文件。

我们需要先确定要删除的时间段。

在Linux系统中,我们可以使用相对时间和绝对时间来表示时间段。

相对时间是指相对于当前时间的时间段,例如一周前、一个月前等;而绝对时间是指具体的时间点,例如2019年1月1日、2020年6月30日等。

接下来,我们将介绍如何使用find命令来查找一周前的文件。

假设我们要删除一周前的所有日志文件,我们可以使用以下命令:```find /path/to/directory -type f -mtime +7 -name "*.log"-exec rm {} \;```在这个命令中,/path/to/directory是要查找文件的目录,-type f表示查找文件类型为普通文件,-mtime +7表示查找修改时间在7天前的文件,-name "*.log"表示查找文件名以.log结尾的文件,-exec rm {} \;表示对查找到的文件执行rm命令来删除。

除了-mtime选项,find命令还有其他选项可以用来指定时间段,例如-atime表示文件的最后访问时间,-ctime表示文件的状态改变时间等。

用户可以根据自己的需求选择合适的选项来查找符合条件的文件。

在这个命令中,-newermt选项表示查找修改时间在指定时间点之后的文件。

bat命令如何实现删除一个月以前的文件?

bat命令如何实现删除一个月以前的文件?

bat命令如何实现删除一个月以前的文件?晕,发出来才发现打掉了一对引号,重新发BatchFile code::删除创建日期超过指定天数的文件--- Forever Young [2011-11-17]@echo off::把需要保留多少天内创建的文件天数赋值给sDay,举例:保留30天内的set sDay=30::指定要操作的路径,这里举例:c:\testset workPath=c:\test::处理日期格式,因为各语言版本的操作系统日期格式有所不同set rp="HKCU\Control Panel\International"for /f "tokens=3" %%a in ('reg query %rp% /v sdate^|findstr /i "sdate"') do (set sDate=%%a)for /f "tokens=3" %%a in ('reg query %rp% /v idate^|findstr /i "idate"') do (set iDate=%%a)::得到当日的天数call :GetToday %date%::转到需要操作的路径pushd %workPath%::处理文件日期信息,我这里使用了两次不同的获取方式,目的就是准确的得到创建日期和文件名::如果不需要获取创建日期,可以减少一次循环setlocal enabledelayedexpansionfor %%i in (*) do (for /f "tokens=1" %%a in ('dir /tc "%%i"^|findstr "[0-9]*\%sDate%[0-9]*\%sDate%[0-9]*"') do (set tmpDate=%%aset tmpDate=!tmpdate:%sDate%= !call :GetDays !tmpDate!set /a dtweens=%tdays% - !days!if !dtweens! gtr %sDay% (del /f /q "%%i")))pauseexit::处理日期到天数的转换:GetDaysif %iDate%==0 (set YY=%3&set MM=%1&set DD=%2)if %iDate%==1 (set YY=%3&set MM=%2&set DD=%1)if %iDate%==2 (set YY=%1&set MM=%2&set DD=%3)IF %MM:~0,1% EQU 0 SET MM=%MM:~1%IF %DD:~0,1% EQU 0 SET DD=%DD:~1%set /a Days=%DD%-32075+1461*(%YY%+4800+(%MM%-14)/12)/4+367*(%MM%-2-(%MM%-14)/12*12)/12-3*((%YY%+4900+(%MM%-14)/12)/100)/4goto :eof::处理当日日期的获取:GetTodayecho %1|findstr [0-9]>nul||shift set dn=%1set dn=%dn:/= %call :GetDays %dn%set tdays=%Days%------解决方案--------------------批处理删除指定天数日期之前的文件/thread-3334-1-1.html。

自动创建计划任务之删除7天以前的备份文件批处理

自动创建计划任务之删除7天以前的备份文件批处理
ห้องสมุดไป่ตู้
方法2: 描述:可以删除7天以前的后缀名为log的日志文件。 不需要指定路径,必须放在要删除日志的文件下。删除当前文件夹下的匹配文件。复制内容到剪贴板代码:
forfiles /m *.log -d -7 /c "cmd /c del /f @path"以上批处理已经在windows 2003的虚拟机上测试通过
[/SD startdate] [/ED enddate] [/IT] [/Z] [/F] 方法:复制内容到剪贴板代码:
@echo off
schtasks /create /tn "Del-7_log" /ru system /tr D:\aizzw\del-7.bat /sc
weekly /d mon /st 01:00
forfiles /p D:\aizzw\LOG /m *.log -d -7 /c "cmd /c del /f @path"参数解释: 这里的/p 指的是要删除的备份文件路径
/m 指的是要匹配的字符,通配符为*号,后缀名可以根据实际情况修改。
如zzw*.log;*.bak;*.txt
-d 指的是日期,“-d -7”指的是从但前日期当前日期往前减7天。 /c 指的是执行命令 @path 返回文件完整路径
start %systemroot%\tasks
echo 创建成功,请检查...
pause
del /f Create.bat参数解释: schtasks /create 指的是创建计划任务 /tn 指定计划任务的名称 /ru 指定运行该批处理的账号,如果去掉该参数则默认为当前账户运行,会提示输入密码。

windows应用场景下批量删除指定文件的批处理脚本

windows应用场景下批量删除指定文件的批处理脚本

windows应用场景下批量删除指定文件的批处理脚本在Windows应用场景下,批量删除指定文件是一项常见的任务。

借助批处理脚本,我们可以轻松地完成这一操作。

本文将介绍如何编写一个批处理脚本来实现批量删除指定文件的功能。

首先,我们需要创建一个文本文件来编写批处理脚本。

在桌面或任何方便的位置右键单击,选择“新建” -> “文本文档”。

将新建的文本文档重命名为"DeleteFiles.bat"(扩展名必须是.bat)。

然后右键单击该文件,选择“编辑”来打开它。

接下来,我们需要了解一些基本的批处理命令。

批处理脚本中的每一行都是一个命令,可以通过批处理命令来实现不同的功能。

下面是几个常用的批处理命令:1. `@echo off`:用于关闭在脚本执行过程中显示命令行窗口的功能。

2. `cd`:用于改变当前目录。

例如,`cd /d C:\Folder` 将当前目录更改为 C 盘下的 Folder 文件夹。

3. `del`:用于删除指定的文件。

例如,`del *.txt` 将删除当前目录下所有的文本文件。

现在,让我们开始编写批处理脚本以实现批量删除指定文件的功能。

以下是一个示例脚本,该脚本将删除指定目录下的所有 .txt 文件:```@echo offcd /d C:\Folderdel *.txt```请确保将上述示例中的 "C:\Folder" 替换为您要操作的实际文件夹路径。

保存并关闭文件。

现在,您可以双击运行该批处理脚本来删除指定目录下的所有 .txt 文件。

除了删除指定类型的文件,我们还可以使用通配符来删除符合特定条件的文件。

例如,如果您想删除所有以“temp”开头的文件,您可以使用如下命令:```@echo offcd /d C:\Folderdel temp*```上述示例中的 "temp*" 表示删除以 "temp" 开头的所有文件。

linux系统中删除时间段的文件命令

linux系统中删除时间段的文件命令

Linux系统中删除时间段的文件命令
在Linux系统中,你可以使用find命令结合-mtime或-mmin选项来查找并删除特定时间段的文件。

以下是一些示例命令:
1.删除30天之前的文件:
bash
find /path/to/files -type f -mtime +30 -delete
这里,/path/to/files是要搜索的目录路径,-type f表示只查找普通文件,-mtime +30表示查找修改时间在30天之前的文件,-delete表示删除匹配条件的文件。

2.删除60分钟之前的文件:
bash
find /path/to/files -type f -mmin +60 -delete
这里,-mmin +60表示查找修改时间在60分钟之前的文件。

3.删除特定日期之前的文件:
bash
find /path/to/files -type f -mtime +456 -delete
这里,+456表示456天之前,因为find命令以天为单位计算。

请注意,这些命令会直接删除匹配的文件,且删除后无法恢复。

因此,在
执行这些命令之前,请务必备份重要数据,并仔细检查路径和条件,以免意外删除重要文件。

用批处理文件删除n天前的文件

用批处理文件删除n天前的文件

批处理文件删除N天前的文件公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服务器去手工删除那些老的文件有时忘记了就会导致硬盘空间不足而无法备份。

因为只要保留最近几天的备份如果可以做一个批处理让系统自动删除老备份文件就好了但是Windows的命令行和Linux的Shell比起来功能差了很多到底行不行我自己也不清楚。

于是上网查了一下各位大虾发的帖子再经过自己的摸索和尝试发现只要花点功夫还是能实现这个功能的。

Windows Server 2003内置的命令行文件适合于XP以上系统示例forfiles/m.bkf/d-28/ccmd/c delfile/f删除当前目录下28天以前的扩展名为bkf文件(以当前系统时间为基准)。

forfiles自动删除7天前文件delete2008-09-12 15:01用forfiles.exe试试。

Forfiles /p”d:\test”/s/m*.*/d-7/c”cmd/c del@path”做成批处理文件,bat文件与forfiles.exe同一目录下,建一个bat文件的快捷方式在启动。

D:\test换成你要的目录路径。

日期是指修改的日期。

附上forfiles.exe及帮助。

删除所有的空目录(以删除d:\test目录下为例)Dir /ad/b/s d:\test\|sort/r d:\kill.txtFor/f”tokens=*”%%i in(d:\kill.txt)DO rd”%%I”del d:\kill.txt把以下复制到bat文件中。

@echo offforfiles /pd:\test/s/m*.*/d-7/c”cmd/c del@path”dir/ad/b/s d:\test\|sort/r dkill.txtFor/f”tokens=*”%%i in(d:\kill.txt) DO rd “%%I” del d:\kill.txt先删过期文件再删所有的空目录如果操作系统是Windows Server 2003那就好办了,因为它有一个forfiles命令能够查找满足指定条件的文件下面是这个命令的用法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。

::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。

::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=E:\test\test
rem 指定天数
set DaysAgo=3
>"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (
set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "FileDate=%%~na"
set "FileDate=!FileDate:~0,10!"
if "!FileDate!" == "%DstDate%" (
if exist "%%a" (
echo.&echo.
echo 删除文件%%a.rar
rem pause
del /f /q "%%a.rar"
)
)
)
endlocal
pause。

相关文档
最新文档