怎么使用批处理移动文件命令命令删除文件

> >>windows自带删除forfiles命令批处理详解 >
windows自带删除forfiles命令批处理详解
forfiles是2003自带的命令,windows7以上系统自动此程序,详细可以forfiles/?查询。可以复制到XP中使用,复制到2000中测试失败。
如要自动删除三天前的文件forfiles /p i:\serverbak\2005 /s /m *.* /d -2 /c "cmd /c del @file"
当文件更改日期晚于10/18/2008时,删除所有C:Backup目录和它子目录下的.sql文件。  EXEC xp_cmdshell FORFILES /p c:BACKUP /s /m *.sql /d 10/18/2008 /c "CMD /C del /Q /F @FILE"
当文件更改日期多于30天时,删除所有C:Backup目录和它的子目录下的.sql文件。  EXEC xp_cmdshell FORFILES /p c:BACKUP /s /m *.sql /d -30 /c "CMD /C del /Q /F @FILE"
删除前一天的历史数据forfiles /m *.fc /s /D -1 /c "cmd /c del @file"
删除当前目录下及其子目录中的空文件夹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
说明:/p 指定的路径 /s 包括子目录 /m 查找的文件名掩码 /d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前&&
/c 运行的命令行&& 表示为每个文件执行的命令。命令字符串应该&&&&&&&&&&&&&&&&&&&&&&& 用双引号括起来。&&&&&&&&&&&&&&&&&&&&&&& 默认命令是 "cmd /c echo @file"。下列变量&&&&&&&&&&&&&&&&&&&&&&& 可以用在命令字符串中:&&&&&&&&&&&&&&&&&&&&&&& @file&&& - 返回文件名。&&&&&&&&&&&&&&&&&&&&&&& @fname&& - 返回不带扩展名的文件名。&&&&&&&&&&&&&&&&&&&&&&& @ext&&&& - 只返回文件的扩展。&&&&&&&&&&&&&&&&&&&&&&& @path&&& - 返回文件的完整路径。&&&&&&&&&&&&&&&&&&&&&&& @relpath - 返回文件的相对路径。&&&&&&&&&&&&&&&&&&&&&&& @isdir&& - 如果文件类型是目录,返回 "TRUE";&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 如果是文件,返回 "FALSE"。&&&&&&&&&&&&&&&&&&&&&&& @fsize&& - 以字节为单位返回文件大小。&&&&&&&&&&&&&&&&&&&&&&& @fdate&& - 返回文件上一次修改的日期。&&&&&&&&&&&&&&&&&&&&&&& @ftime&& - 返回文件上一次修改的时间。示例要列出驱动器 C: 上的所有批处理文件,请键入:forfiles /p c:\ /s /m*.bat /c"cmd /c echo @file is a batch file"& . 本文分页: [] []
每月编辑为您精心挑选推荐如下:
您也许还对下列文章感兴趣:
上一篇:下一篇:
官网交流群
技术交流QQ群:
友情链接QQ群:查看:14124|回复:20
中级工程师
比如某个分区有一个文件夹,里面有9.1号到9.23号的文件。如何写个批处理,比如想删除7天前的文件,就输入7。然后指定文件夹里的9月16号前的资料都没有了。想删除5天前的就输入5,以此类推。求教。
文件夹又不是数据库……
&&职场人生交流QQ群
我是一只小小小小牛
这个好像有点难度,等批处理高手来解答,我也学习下。
热衷微软技术,技术成就梦想!
我的博客:
沉默是毁谤最好的答覆
“我好像喜欢上你了。” “怎么说的好像你上过我似的。”
初级工程师
windows 2003里有个命令:forfiles
forfiles /p &目标目录名& /d &天数& /c &执行的命令&
forfiles /p &d:\backup& /d -90 /c &cmd /c echo deleting @file ... && del /f &
就是把d:\backup文件夹里的90天之前的文件删除
初级工程师
forfiles指令介紹
一般最常用的是刪除 log 檔案, 指定目錄, 並指令時間 (例如保留一週, 一週前的刪除), 就可以利用這個指令進行刪除:
forfiles /p c:\temp /s /m *.log /d -7 /c &cmd /c del @FILE&
或是列舉出指定目錄下的檔案(非目錄)的名稱列出:
forfiles /p c:\ /c &cmd /c if @isdir==FALSE echo @FILE&
請注意上面的 &FALSE& 要大寫!
再來看看微軟的官方說明: Forfiles
以下列出該指令的參數說明: (利用 forfiles /? 取得)
FORFILES [/P pathname] [/M searchmask] [/S]
& && && &[/C command] [/D [+ | -] {yyyy/MM/dd | dd}]
& & 選取一個檔案 (或一組檔案),並在檔案上
& & 執行命令。這對批次工作很有幫助。
& & /P& & pathname& && &表示要開始搜尋的路徑。
& && && && && && && && &預設資料夾是目前的
& && && && && && && && &目錄 (.)。
& & /M& & searchmask& & 根據 searchmask 搜尋檔案。
& && && && && && && && &預設的 searchmask 是 '*'。
& & /S& && && && && && &指示 forfiles 遞迴搜尋
& && && && && && && && &子目錄。例如 &DIR /S&。
& & /C& & command& && & 表示每個檔案要執行的命令。
& && && && && && && && &命令字串應該包含在雙括號
& && && && && && && && &之間。
& && && && && && && && &預設的命令是 &cmd /c echo @file&。
& && && && && && && && &下列變數可以使用於命令字串:
& && && && && && && && &@file& & - 傳回檔案的名稱。
& && && && && && && && &@fname& &- 只傳回檔案的名稱,
& && && && && && && && && && && &&&不傳附檔名。
& && && && && && && && &@ext& &&&- 只傳回檔案的
& && && && && && && && && && && &&&附檔名。
& && && && && && && && && & - 傳回檔案的完整路徑。
& && && && && && && && &@relpath - 傳回檔案的相對
& && && && && && && && && && && &&&路徑。
& && && && && && && && &@isdir& &- 如果檔案類型是目錄的話,
& && && && && && && && && && && &&&傳回 &TRUE&,如果是檔案
& && && && && && && && && && && &&&的話,傳回 &FALSE&。
& && && && && && && && &@fsize& &- 傳回檔案的大小,
& && && && && && && && && && && &&&單位是位元組。
& && && && && && && && &@fdate& &- 傳回檔案上次修改的
& && && && && && && && && && && &&&日期。
& && && && && && && && && &- 傳回檔案上次修改
& && && && && && && && && && && &&&的時間。
& && && && && && && && &要在命令列中包含特殊字元的話,
& && && && && && && && &請使用 0xHH 格式的十六
& && && && && && && && &進位字元碼 (例如 0x09 代表 tab)。
& && && && && && && && &內部的 CMD.exe 命令應該
& && && && && && && && &以 &cmd /c& 執行。
& & /D& & date& && && & 選取檔案上次修改的時間大於、
& && && && && && && && &等於 (+) 或小於或等於 (-)、
& && && && && && && && &使用 &yyyy/MM/dd& 格式表示指定的日期;
& && && && && && && && &或選取檔案日期上次修改
& && && && && && && && &的時間大於或等於 (+)
& && && && && && && && &目前的日期再加上&dd& 天、
& && && && && && && && &小於或等於 (-) 目前的日期減去 &dd& 天。
& && && && && && && && &有效的 &dd& 可以是介於
& && && && && && && && &0 - 32768 之間的數字。
& && && && && && && && &如果未指定,&+& 將被視為預設符號。
& & /?& && && && && && &顯示這個說明訊息。
引用:原帖由 wilson1985 于
12:04 发表
比如某个分区有一个文件夹,里面有9.1号到9.23号的文件。如何写个批处理,比如想删除7天前的文件,就输入7。然后指定文件夹里的9月16号前的资料都没有了。想删除5天前的就输入5,以此类推。求教。 ... 1、确实可以用6楼说的forfiles命令来做,我用它来删除log文件
forfiles /p E:\Logs /m *.log -d -7 /c &cmd /c del /f & 1&nul 2&nul
2、不过第2种方法是用vbs脚本,我用它删除文件服务器中某个共享里过期的文件和非法的文件(例如mp3,视频,exe文件等),删除的文件我先放到一个地方备份一下,保存一段时间后,另一个脚本将会把彻底删除,以免误删除文件!脚本如下:
on error resume next
Dim fso, startFolder, OlderThanDate&&
Set fso = CreateObject(&Scripting.FileSystemObject&)&&
startFolder = &E:\文件共享\&& &&&'需要删除过期文件所在的文件夹路径,可以是本地,也可以是网络上的共享路径
bkfolder = &E:\文件共享备份\&& && && && && && && & '备份文件的路径
OlderThanDate = DateAdd(&d&, -30, Date)& && & '定义30天前的日期& &
DeleteOldFiles startFolder, OlderThanDate& & '删除过期文件或者带有特定扩展名的文件,下面Function会说明它的作用
DeleteEmptyFolders startFolder& && && && && &'删除空文件夹,下面Function会说明它的作用
Function DeleteOldFiles(folderName, BeforeDate)
Dim folder, file, fileCollection, folderCollection, subFolder&&
Set folder = fso.GetFolder(folderName)& && & '获得目录名
Set fileCollection = folder.Files& && && && &'获得目录里的文件
For Each file In fileCollection& && && && &&&'提取每个文件,然后判断是否符合如下条件
GetAnExtension = fso.GetExtensionName(file)&&'获得文件扩展名
If file.DateLastModified & BeforeDate or GetAnExtension = &mp3& or GetAnExtension = &exe& Then&&'判断文件是否过期及扩展名
fso.CopyFile file.Path, bkfolder ,true& && & '如果符合上面的要求,将把这样的文件复制到备份目录中
fso.DeleteFile(file.Path)& && && && && && &&&'删除上面的文件
Set folderCollection = folder.SubFolders& &&&'对子目录进行与上面相同的操作,循环判断
For Each subFolder In folderCollection& && && &
DeleteOldFiles subFolder.Path, BeforeDate&&
End Function& &
Function DeleteEmptyFolders(foldername)& && &&&
For Each Folder In fso.GetFolder(foldername).SubFolders& && && &
DeleteEmptyFolders(Folder.Path)& && && && && && && && && && && &
If Folder.Files.Count = 0 and Folder.SubFolders.Count = 0 Then& && && & '如果子目录中的文件数为0及目录数为0,那么可断定它是空目录& && &&&
fso.DeleteFolder(Folder.Path)& && && && && && && && && && && && && && && && &&&'删除空目录
End Function
'wscript.echo &删除旧的文件及目录的操作已经完成!&
本帖最后由 lzy821218 于
17:25 编辑
我的微博:.cn/lzy821218
:funk: 果然有高人 膜拜
牛B:P1 :P1 :P1
echo 正在删除30天之外的数据,请稍等......
pushd 路径
for /f &skip=%n%& %%i in ('dir/b/ad/o-d 20??????') do rd %%i /s/q
echo.&pause
echo.&echo&&删除完成,请核实并任意键退出……
read -p &请输入你要删除几天前的文件:& DATA
rm -rf `find filename -mtime $DATA`
此处filename 属于9.1号等上级目录
再补充下,此命令是LINUX下的,$DATA前加-(表示DATA天以内),+(表示DATA天以前)
:(1 我再一次深刻的认识到自己是多麽的菜鸟了。。。。。。。。。
我是一只小小小小牛
;P1&&学习了 原来还有 forfiles这个命令啊
热衷微软技术,技术成就梦想!
我的博客:
初级工程师
路过,学习下
助理工程师
刚试了一下&&WIN7里也有该命令
哇咔咔。。。
高级工程师
不明觉厉 ……:loveliness:1 :loveliness:1 :loveliness:1
夜明堂前弹瑶琴,佳人月下舞流云;莽汉不言英雄志,青梅煮酒伴红颜。
等着高人来!推荐装机教程
最新装机教程
Win7系统使用批处理命令删除同类文件的方法
Win7系统使用批处理命令删除同类文件的方法
来源:小鱼一键重装系统
发布时间: 14:09
&&&&&& 相信还有少部分用户在删除文件时选择一个一个删除,那么,在Win7系统怎么批量来删除文件呢?为了提高效率也为了提高运行速度,我们可以在Win7系统下批处理平时很少用户到这些文件(一般都是以拓展名为.bat或.cmd的文本文件,且包含一条或多条执行命令)。现在,小编就来教大家在Win7系统中如何使用命令批量删除同类(同一类型)文件的方法。
&&&&&&参考方法一:
&&&&&&1、右键打开右键菜单,新建文本文档;
&&&&&&2、把文本文档的.txt后缀改成.cmd或者.bat。比如把&新建文本文档.txt&改成&test.bat&;
&&&&&&3、在弹出的对话框中点击确定;
&&&&&&4、键点击test.bat,在弹出的菜单中点击编辑;
&&&&&&5、然后输入如下命令:(比如要删除该文件夹下所有txt文件)
  ===================================
  for /r %%f in (*.htm) do del %%f
  ===================================
&&&&&&6、trl+S保存。
&&&&&&7、把test.bat文件拷贝到你要处理的文件夹下;
&&&&&&8、最后双击test.bat文件之后,这个文件夹下所有的txt文件都被删除了。
Copyright ©37615人阅读
个人(16)
软件测试(14)
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参数表示,不需要确认
2 创建文件夹
&&& 例:在E:\My documents下面一次创建3个新文件夹:Newfolder1,Newfolder2,Newfolder3
&&&&&&& @echo off
&&&&&&& md &E:\My documents\Newfolder1&
&&&&&&& md &E:\My documents\Newfolder2&
&&&&&&& md &E:\My documents\Newfolder3&
3 执行程序,打开文件或目录
例1:打开指定目录,如C:\Test
&&&&&&&& start C:\Test
例2:执行C盘下的WinWord.exe程序
&&&&&&&& start C:\WinWord.exe
例3:用某个程序打开某个文件,如用TheWorld.exe打开一个htm文件
&&&&&&& start d:\TheWorld\TheWorld.EXE C:\我有一个恋爱.htm
[注意]:不论是程序或文件路径中含有空格,都必须用引号括起来:
&&&&&&& start d:\TheWorld\TheWorld.EXE &e:\My documents\我有一个恋爱.htm&
所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭汉字输入系统
4. 拷贝文件夹 XCOPY
XCOPY命令可用于复制文件和目录,包括子目录。 其功能多数是通过增加参数来实现的。
XCOPY source [destination] 参数(如 /s /e)
source 指定要复制的文件。
destination 指定新文件的位置和/或名称。
/A 只复制有存档属姓集的文件,
但不改变属姓。
/M 只复制有存档属姓集的文件,
并关闭存档属姓。
/D:m-d-y 复制在指定日期或指定日期以后改变的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。如果有任何
字符串与要被复制的文件的绝对路径
相符,那个文件将不会得到复制。
例如,指定如 \obj\ 或 .obj 的字符串会排除
目录 obj 下面的所有文件或带有
.obj 扩展名的文件。
/P 创建每个目标文件前提示。
/S 复制目录和子目录,除了空的。
/E 复制目录和子目录,包括空的。
与 /S /E 相同。可以用来修改 /T。
/V 验证每个新文件。
/W 提示您在复制前按键。
/C 即使有错误,也继续复制。
/I 如果目标不存在,又在复制一个以上的文件,
则假定目标一定是一个目录。
/Q 复制时不显示文件名。
/F 复制时显示完整的源和目标文件名。
/L 显示要复制的文件。
/G 允许将没有经过加密的文件复制到
不支持加密的目标。
/H 也复制隐藏和系统文件。
/R 改写只读文件。
/T 创建目录结构,但不复制文件。不
包括空目录或子目录。/T /E 包括
空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属姓。一般的 Xcopy 会重设只读属姓。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 禁止提示以确认改写一个
现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
/Z 用重新启动模式复制网络文件。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:530477次
积分:4913
积分:4913
排名:第4219名
原创:59篇
转载:51篇
评论:19条
(1)(1)(6)(4)(7)(6)(6)(3)(8)(5)(2)(8)(10)(4)(5)(7)(6)(19)(2)使用批处理命令清除远程系统日志文件的方法-信息服务
使用批处理命令清除远程系统日志文件的方法
发布时间: 11:54
学会使用批处理命令清除远程系统日志文件,防止木马入侵。本文今天就教你使用.bat文件清除日志防止入侵,还可以优化系统,删除不必要的文件!下面我们就来看看本地和远程系统日志文件 是如何被彻底清除。
&&& 第一个清理本地和远程系统日志文件的方法
&&& windows日志对于系统安全的作用是显而易见的,无论是网络管理员还是黑客都非常重视日志,管理员能够通过日志迅速了解到系统的安全性能,而黑客会在入侵成功后迅速清除掉对自己不利的日志。无论是入侵还是防范,日志的重要性由此可见。
&&& Windows系统的日志文件有应用程序日志、安全日志、系统日志等,它们默认的地址为:%systemroot%\system32\config。
&&& 安全日志文件:%systemroot%\system32\config\SecEvent.EVT
&&& 系统日志文件:%systemroot%\system32\config\SysEvent.EVT
&&& 应用程序日志文件:%systemroot%\system32\config\AppEvent.EVT
&&& 有的管理员为了更好地保存系统日志文件,往往将这些日志文件的地址进行重新的定位,其中在日志文件夹下面有很多子表,在里面可查到以上日志的定位目录。
&&& 如果用户想要清除自己系统中的日志文件,首先需要用管理员账号登录Windows系统,打开“控制面板”下的“管理工具”,再打开“事件查看器”。然后选择打开我们需要清除的日志文件,比如用户想清除安全日志,可以右键点击“安全性”选项,在弹出的菜单中选择“属性”命令。接下来在弹出的对话框中,点击下面“清除日志”按钮就可以清除了。
&&&&另一个清理日志的方法就是自己编写批处理文件来解决,黑客一般都喜欢使用这个方法,它的效率更高。编写一个能清除日志的批处理非常简单,新建一个文本文档,在其中输入以下内容:
&&& @del c:\winnt\system32\logfiles\*.*
&&& @del c:\winnt\system32\config\*.evt
&&& @del c:\winnt\system32\dtclog\*.*
&&& @del c:\winnt\system32\*.log
&&& @del c:\winnt\system32\*.txt
&&& @del c:\winnt*.txt
&&& @del c:\winnt*.log
&&& @del c:\del log.bat
&&& 把上面的内容保存为log.bat备用。在上面的代码中“@”前缀字符表示执行时本行在命令行或DOS里面不显示。之后黑客通过IPC连接将log.bat文件上传到被入侵主机或肉鸡上,将log.bat文件执行以下就可以了。如果黑客利用肉鸡入侵目标主机,那他还需要清理肉鸡的日志文件,方法和上面的一样。
&&& 除此之外,还可以利用第三方软件来实现清理目的,大体原理都一样。作为管理员应定期备份日志文件,防止被入侵后清空日志。另外可以把日志文件的路径更改,预防黑客用批处理文件清理日志。

我要回帖

更多关于 使用命令删除文件 的文章

 

随机推荐