windows通过文件名删除指定日期以前文件或目录.bat
- 格式:doc
- 大小:32.50 KB
- 文档页数:3
批处理文件BAT命令大全一.简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo 命令将显示当前回显设置。
语法echo [{on│off}] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。
2.@ 命令表示不显示@ 后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。
)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。
)Sample:if {%1}=={} goto noparmsif {%2}=={} goto noparms(如果这里的if、%1、%2就是表示变量。
)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签, : 开头的字符行 , 在批处理中都被视作标号 , 而直接忽略其后的所有内容 , 只是为了与正常的标号相区别 , 建议使用 goto 所无法识别的标号 , 即在 : 后紧跟一个非字母数字的一个特殊符号 . goto 命令就是根据这个:来寻找下一步跳到到那里。
BAT定期删除N天前的⽂件1.直接看脚本在win2008测试可⽤::clean logs@echo offtitle clean up logs::delete logsFORFILES /P "D:\Logs" /S /M *.log* /D -7 /C "cmd /c echo deleting..@file.. &del @file"pause2.列出⼏个参考吧,forfiles的版本不⼀致会导致很多不⼀样的问题forfiles:/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"要列出驱动器 C: 上的所有⽬录,请键⼊:forfiles /p c:\ /s /m*.* /c"cmd /c if @isdir==true echo @file is a directory"要列出驱动器 C: 上存在时间多于 100 天的所有⽂件,请键⼊:forfiles /p c:\ /s /m*.* /dt-100 /c"cmd /c echo @file :date >= 100 days"要列出驱动器 C: 上 1993 年 1 ⽉ 1 ⽇以前创建的所有⽂件,⽽且对于⽇期早于 1993 年 1 ⽉ 1 ⽇的⽂件显⽰“file is quite old!”,请键⼊:forfiles /p c:\ /s /m*.* /dt-01011993 /c"cmd /c echo @file is quite old!"要按列格式列出驱动器 C: 上所有⽂件的扩展名,请键⼊:forfiles /p c:\ /s /m*.* /c "cmd /c echo extension of @file is " With:要列出驱动器 C: 上的所有批处理⽂件,请键⼊:forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"要列出驱动器 C: 上的所有⽬录,请键⼊:forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"要列出驱动器 C: 上存在时间多于 100 天的所有⽂件,请键⼊:forfiles /p c:\ /s /m *.* /d t-100 /c "cmd /c echo @file :date >= 100 days"要列出驱动器 C: 上 1993 年 1 ⽉ 1 ⽇以前创建的所有⽂件,⽽且对于⽇期早于 1993 年 1 ⽉ 1 ⽇的⽂件显⽰“file is quite old!”,请键⼊:forfiles /p c:\ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"要按列格式列出驱动器 C: 上所有⽂件的扩展名,请键⼊:forfiles /p c:\ /s /m*.* /c "cmd /c echo extension of @file is "。
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 bat 遍历path删除路径-回复题目:Windows批处理脚本遍历path删除路径详解引言:在Windows操作系统中,Path环境变量用于指定系统在查找可执行文件时应搜索的目录列表。
然而,有时候我们可能需要对Path中的某些路径进行删除操作,以满足特定的需求或解决一些问题。
本文将介绍使用Windows批处理脚本遍历Path并删除指定路径的详细步骤,以帮助读者更好地理解和操作。
第一步:了解Path环境变量在开始编写批处理脚本之前,我们首先需要了解Path环境变量的基本概念和作用。
Path变量是一个用于存储系统可执行文件的路径列表的环境变量。
当我们在命令提示符下输入一个可执行文件名时,系统会按照Path 中的顺序在这些路径中搜索该可执行文件。
因此,我们可以通过修改Path 来控制系统的文件搜索顺序和范围。
第二步:编写批处理脚本在批处理脚本中,我们需要使用一些特定的命令和变量来实现遍历Path 并删除指定路径的操作。
下面是一个简单的示例脚本:echo offsetlocal enabledelayedexpansionset PATH_DEL=[删除的路径]for i in ("PATH") do (set "path_item=~i"if not "!path_item!"=="PATH_DEL" (set "new_path=!new_path!;!path_item!"))set PATH=new_path:~1endlocal第三步:解析脚本代码上述脚本中的代码包含了一些关键的命令和变量,让我们逐行进行解析说明。
- `echo off`:关闭命令回显,即执行命令时不显示命令本身。
- `setlocal enabledelayedexpansion`:启用延迟环境变量扩展,以便在循环中使用变量的新值。
BAT命令大全@ #关闭单行回显echo off #从下一行开始关闭回显@echo off #从本行开始关闭回显。
一般批处理第一行都是这个echo on #从下一行开始打开回显echo #显示当前是 echo off 状态还是 echo on 状态echo. #输出一个”回车换行”,空白行#(同echo, echo; echo+ echo[ echo] echo/ echo\)2 errorlevelecho %errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码默认值为0,一般命令执行出错会设 errorlevel 为13 dirdir #显示当前目录中的文件和子目录dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 dir c: /a:d #显示 C 盘当前目录中的目录dir c: /a:-d #显示 C 盘根目录中的文件dir c:\ /b/p #/b只显示文件名,/p分页显示dir *.exe /s #显示当前目录和子目录里所有的.exe文件4 cdcd\ #进入根目录cd #显示当前目录cd /d d:\sdk #可以同时更改盘符和目录5 mdmd d:\a\b\c #如果 d:\a 不存在,将会自动创建中级目录#如果命令扩展名被停用,则需要键入 mkdir \a\b\c。
6 rdrd abc #删除当前目录里的 abc 子目录,要求为空目录rd /s/q d:\temp #删除 d:\temp 文件夹及其子文件夹和文件,/q安静模式 7 deldel d:\test.txt #删除指定文件,不能是隐藏、系统、只读文件del /q/a/f d:\temp\*.*删除 d:\temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录del /q/a/f/s d:\temp\*.*删除 d:\temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录8 renren d:\temp tmp #支持对文件夹的重命名9 cls清屏10 type显示文件内容type c:\boot.ini #显示指定文件的内容,程序文件一般会显示乱码 type *.txt #显示当前目录里所有.txt文件的内容11 copy拷贝文件copy c:\test.txt d:\test.bak复制 c:\test.txt 文件到 d:\ ,并重命名为 test.bakcopy con test.txt从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机,nul代表空设备copy 1.txt + 2.txt 3.txt合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件如果不指定 3.txt ,则保存到 1.txtcopy test.txt +复制文件到自己,实际上是修改了文件日期12 title设置cmd窗口的标题title 新标题 #可以看到cmd窗口的标题栏变了13 ver显示系统版本14 label 和 vol设置卷标vol #显示卷标label #显示卷标,同时提示输入新卷标label c:system #设置C盘的卷标为 system15 pause暂停命令16 rem 和 ::注释命令注释行不执行操作17 date 和 time日期和时间date #显示当前日期,并提示输入新日期,按\"回车\"略过输入date/t #只显示当前日期,不提示输入新日期time #显示当前时间,并提示输入新时间,按\"回车\"略过输入time/t #只显示当前时间,不提示输入新时间18 goto 和 :跳转命令:label #行首为:表示该行是标签行,标签行不执行操作 goto label #跳转到指定的标签那一行19 find (外部命令)查找命令find \"abc\" c:\test.txt在 c:\test.txt 文件里查找含 abc 字符串的行如果找不到,将设 errorlevel 返回码为1find /i “abc” c:\test.txt查找含 abc 的行,忽略大小写find /c \"abc\" c:\test.txt显示含 abc 的行的行数20 more (外部命令)逐屏显示more c:\test.txt #逐屏显示 c:\test.txt 的文件内容21 tree显示目录结构tree d:\ #显示D盘的文件目录结构22 &顺序执行多条命令,而不管命令是否执行成功23 &&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令find \"ok\" c:\test.txt && echo 成功如果找到了\"ok\"字样,就显示\"成功\",找不到就不显示24 ||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令find \"ok\" c:\test.txt || echo 不成功如果找不到\"ok\"字样,就显示\"不成功\",找到了就不显示25 |管道命令dir *.* /s/a | find /c \".exe\"管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数type c:\test.txt|more这个和 more c:\test.txt 的效果是一样的26 > 和 >>输出重定向命令> 清除文件中原有的内容后再写入>> 追加内容到文件末尾,而不会清除原有的内容主要将本来显示在屏幕上的内容输出到指定文件中指定文件如果不存在,则自动生成该文件type c:\test.txt >prn屏幕上不显示文件内容,转向输出到打印机echo hello world>con在屏幕上显示hello world,实际上所有输出都是默认 >con 的copy c:\test.txt f: >nul拷贝文件,并且不显示\"文件复制成功\"的提示信息,但如果f盘不存在,还是会显示出错信息copy c:\test.txt f: >nul 2>nul不显示”文件复制成功”的提示信息,并且f盘不存在的话,也不显示错误提示信息echo ^^W ^> ^W>c:\test.txt生成的文件内容为 ^W > W^ 和 > 是控制命令,要把它们输出到文件,必须在前面加个 ^ 符号27 <从文件中获得输入信息,而不是从屏幕上一般用于 date time label 等需要等待输入的命令@echo offecho 2005-05-01>temp.txtdate del temp.txt这样就可以不等待输入直接修改当前日期28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*命令行传递给批处理的参数%0 批处理文件本身%1 第一个参数%9 第九个参数%* 从第一个参数开始的所有参数批参数(%n)的替代已被增强。
forfiles命令详解分类:WINDOWS删除三天前的文件forfiles /p i:\serverbak\2005 /s /m *.* /d -2 /c "cmd /c del @file"说明:forfiles是2003自带的命令,非常好用,详细可以forfiles/?查询。
可以复制到XP中使用,复制到2000中测试失败。
forfiles:/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"要列出驱动器 C: 上的所有目录,请键入:forfiles /p c:\ /s /m*.* /c"cmd /c if @isdir==true echo @file is a directory"要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:forfiles /p c:\ /s /m*.* /dt-100 /c"cmd /c echo @file :date >= 100 days"要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:forfiles /p c:\ /s /m*.* /dt-01011993 /c"cmd /c echo @file is quite old!"要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:forfiles /p c:\ /s /m*.* /c "cmd /c echo extension of @file is0x09@ext0x09" With:要列出驱动器 C: 上的所有批处理文件,请键入:forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"要列出驱动器 C: 上的所有目录,请键入:forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:forfiles /p c:\ /s /m *.* /d t-100 /c "cmd /c echo @file :date >= 100 days"要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:forfiles /p c:\ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:forfiles /p c:\ /s /m*.* /c "cmd /c echo extension of @file is0x09@ext0x09使用forfiles自动批量删除过期文件2012-02-23 17:48:02 我来说两句收藏我要投稿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, Pleasewait... >>%filename%forfiles.exe /p "D:\Kugou" /m *.tar /d -14 /c "cmd /c del @path"echo End >>%filename%echo (%date% %time%) >>%filename%不好意思,脚本是抄别人的,来自/67857/407482 关键命令就这一条了:forfiles.exe /p "D:\Kugou" /m *.tar /d -14 /c "cmd /c del @path"这条命令的意思就是,搜索D:/Kugou目录下的任意后缀名为tar的文件,查看其日期属性是否为14天之前的(-14表示之前,+14表示之后),然后执行删除命令一开始一直在纠结这日期格式是怎么弄的,是不是forfiles是通过匹配文件名来删除的,结果一直在改文件名的日期显示格式,后来才发现偶智商如此低下,人家forfiles是windows自带的,尼玛明显能够智能的匹配文件日期属性啊。
Windows批Windows批处理(cmdbat)常见问题:1.如果你⾃⼰编写的.bat⽂件,双击打开,出现闪退2.批处理.bat ⽂件中输出中⽂乱码解决⽅法在⽂章末尾!前⾔批处理⽂件(batch file)包含⼀系列 DOS命令,通常⽤于⾃动执⾏重复性任务。
⽤户只需双击批处理⽂件便可执⾏任务,⽽⽆需重复输⼊相同指令。
编写批处理⽂件⾮常简单,但难点在于确保⼀切按顺序执⾏。
编写严谨的批处理⽂件可以极⼤程度地节省时间,在应对重复性⼯作时尤其有效在Windows中善⽤批处理可以简化很多重复⼯作什么是批处理?批处理(Batch),也称为批处理脚本。
顾名思义,批处理就是对某对象进⾏批量的处理。
批处理⽂件的扩展名为bat⽬前⽐较常见的批处理包含两类:DOS批处理和PS批处理。
PS批处理是基于强⼤的图⽚编辑软件Photoshop的,⽤来批量处理图⽚的脚本;⽽DOS批处理则是基于DOS命令的,⽤来⾃动地批量地执⾏DOS命令以实现特定操作的脚本。
这⾥要讲的就是DOS批处理批处理是⼀种简化的脚本语⾔,它应⽤于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是或者CMD.EXE)解释运⾏批处理类似于Unix中的Shell脚本。
批处理⽂件具有.bat或者.cmd的扩展名,其最简单的例⼦,是逐⾏书写在命令⾏中会⽤到的各种命令。
更复杂的情况,需要使⽤if,for,goto等命令控制程序的运⾏过程,如同C,Basic等中⾼级语⾔⼀样。
如果需要实现更复杂的应⽤,利⽤外部程序是必要的,这包括系统本⾝提供的外部命令和第三⽅提供的⼯具或者软件怎么创建批处理⽂件?批处理⽂件,或称为批处理程序,是由⼀条条的DOS命令组成的普通⽂本⽂件,可以⽤记事本直接编辑或⽤DOS命令创建,也可以⽤DOS下的⽂本编辑器Edit.exe来编辑。
在“命令提⽰”下键⼊批处理⽂件的名称,或者双击该批处理⽂件,系统就会调⽤Cmd.exe运⾏该批处理程序⼀般情况下,每条命令占据⼀⾏当然也可以将多条命令⽤特定符号(如:&、&&、|、||等)分隔后写⼊同⼀⾏中还有的情况就是像if、for等较⾼级的命令则要占据⼏⾏甚⾄⼏⼗⼏百⾏的空间。
批处理文件BAT命令大全一.简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo 命令将显示当前回显设置。
语法echo [{on│off}] [message]Sample:@echo off / echo hello world在实际应用xx我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件xx.这将在以后的例子xx 体现出来。
2.@ 命令表示不显示@ 后面的命令,在入侵过程中(例如使用批处理来xx敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。
)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。
)Sample:if {%1}=={} goto noparmsif {%2}=={} goto noparms(如果这里的if、1、%2就是表示变量。
)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,: 开头的字符行, 在批处理xx被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用goto 所无法识别的标号, 即在: 后紧跟一个非字母数字的一个特殊符号. goto 命令就是根据这个:来寻找下一步跳到到那里。
系统盘符根目录文件夹及文件详解系统安装完毕后,“系统盘根目录”正常文件及文件夹如下图所示。
添加了一点注解,希望能对大家有所帮助,注解如有错误,还请大家及时提出,以便改正!Documents and SettingsWindows NT/2000/XP/2003操作系统中用来存放用户配置信息的文件夹。
默认情况下在系统分区根目录下,其下包括:Administrator、All Users、Default User、用户文件夹。
如果你将隐藏和系统的文件(夹)都显示出来的话,还会发现诸如LocalService、NetworkService等更多的文件夹该文件夹可以移出系统盘为什么要移动这个文件夹?由于Windows使用Documents and Settings文件夹存储了大量重要内容,所以将其移动到其他分区的好处在于:1.随着安装软件增多,windows目录会越来越庞大,这时如果没有给系统盘留下足够空间,就需要把Documents and Settings文件夹移动到其他分区,使得windows有足够空间运行。
2.Documents and Settings文件夹和Windows文件是系统频繁访问的路径,如果位于不同硬盘,将会加快磁盘系统的访问速度,减少对单一的硬盘的过度磨损。
3.Documents and Settings文件夹存储的是用户个人数据,当重装系统或用Ghost恢复系统时,必须事先备份用户的个人数据,一旦忘记的话,就损失大了。
把Documents and Settings文件夹移动到其他分区,就可以无需备份,直接格式化系统分区或者使用Ghost覆盖系统分区,而不会影响用户的个人数据微软给的原创方法微软公司给出了移动Documents and Settings文件夹的方案,分为两种情况:第一种情况:安装系统前设置只需在安装前修改Documents and Settings文件夹的名字即可,安装系统时通过运行winnt.exe或winnt32.exe并携带"/UNATTEND"参数,并在"unattend.txt"文件中插入以下语句:[GuiUNattended]ProfilesDir=D:\USER其中"D:\USER"是自定义目录,这样安装后的系统将会用指定的目录替代默认的"Documents and Settings"文件夹第二种情况:已经安装好的系统用过Linux的用户应该知道,Linux可以把不同的装载点(可理解为不同的目录或分区)装到同一个点上,这样方便管理。
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⾃带的,尼玛明显能够智能的匹配⽂件⽇期属性啊。
windows bat 遍历path删除路径-回复Windows中的.bat文件是一种批处理文件,用于通过命令行自动执行一系列的操作。
在本篇文章中,我们将学习如何编写一个遍历PATH并删除指定路径的.bat文件。
在Windows操作系统中,PATH是一个环境变量,用于指定可执行文件的路径。
通过将可执行文件的路径添加到PATH中,我们可以在任何目录下直接执行该文件,而不需要指定完整的路径。
有时候,我们需要从PATH中删除某些路径,以确保系统不会在尝试执行某些特定的命令时误解成其他位置的可执行文件。
下面是如何编写一个.bat文件来遍历PATH并删除指定路径的步骤:步骤1:打开文本编辑器首先,打开你最喜欢的文本编辑器,例如记事本或Notepad++,以便编写.bat文件。
步骤2:创建新文件在文本编辑器中,点击"文件"菜单,然后选择"新建"或"新建文件"来创建一个新文件。
步骤3:开始编写.bat文件在新文件中,我们需要使用一些特定的命令来遍历PATH并删除指定路径。
首先,我们需要使用set命令来获取当前的PATH值,并将其存储在一个变量中。
使用以下命令:setlocal enabledelayedexpansionset "oldPath=!PATH!"首先,enabledelayedexpansion命令用于启用延迟扩展,这将允许我们在变量中使用感叹号(!)来避免因为特殊字符的原因导致的错误。
然后,将当前的PATH值存储在名为"oldPath"的变量中。
步骤4:遍历PATH并删除指定路径下一步,我们需要使用for命令来遍历每个PATH的条目,并检查是否需要删除指定路径。
我们可以使用以下代码实现:for i in ("!oldPath!") do (set "newPath=!PATH:;=;!"for j in ("!newPath!") do (set "pathItem=~j"if not "!pathItem!"=="[要删除的路径]" (set "updatedPath=!updatedPath!;~j")))首先,我们将原始的PATH值存储在"oldPath"变量中,并使用for循环迭代每个路径项。
批处理删除垃圾文件的方法-概述说明以及解释1.引言1.1 概述概述随着信息技术的快速发展,我们生活中产生了大量的垃圾文件。
这些垃圾文件不仅占据了存储空间,还可能导致系统运行速度变慢,甚至影响到计算机的正常运行。
因此,我们需要采取一些有效的方法来删除这些垃圾文件。
本文将介绍一种批处理删除垃圾文件的方法,批处理是一种可以自动执行特定任务的脚本语言。
通过编写批处理脚本,我们可以快速、高效地删除垃圾文件。
相比手动删除,批处理删除垃圾文件具有以下优点:1. 高效快速:批处理脚本可以一次性删除多个文件,大大提高了删除效率。
而手动删除需要逐个选择和删除文件,耗时耗力。
2. 精确控制:批处理脚本可以根据特定的规则或者条件来删除垃圾文件。
我们可以指定删除特定类型的文件,例如临时文件、缓存文件、重复文件等,避免误删重要文件。
3. 批量操作:批处理脚本可以同时对多个文件夹或者多个磁盘进行操作,可以一次性删除多个文件夹内的垃圾文件。
在接下来的章节中,我们将详细介绍批处理删除垃圾文件的方法。
首先,我们会介绍如何编写批处理脚本并运行它;然后,我们会介绍如何根据文件类型、文件大小、文件日期等条件来删除垃圾文件;最后,我们会总结这种方法的优点,并展望未来的发展方向。
通过本文的学习,相信读者们可以掌握批处理删除垃圾文件的方法,有效地清理计算机中的垃圾文件,提高计算机的性能和运行速度。
同时,也希望更多的人能够关注并使用这种高效的垃圾文件删除方法,共同促进计算机系统的优化和保护。
1.2 文章结构文章结构部分的内容如下:文章结构部分旨在介绍本文的组织结构,以帮助读者更好地理解文章的逻辑和内容安排。
本文分为引言、正文和结论三个主要部分。
引言部分首先概述了本文的重点研究内容,即批处理删除垃圾文件的方法。
接着介绍了文章结构,即引言、正文和结论这三个部分的内容安排,为读者提供了整篇文章的大致框架。
正文部分是本文的核心部分,主要介绍了批处理删除垃圾文件的方法。
Windows强制删除⽂件及⽂件夹命令⼀、删除⽂件或⽬录CMD命令:rd/s/q 盘符:\某个⽂件夹(强制删除⽂件⽂件夹和⽂件夹内所有⽂件)del/f/s/q 盘符:\⽂件名(强制删除⽂件,⽂件名必须加⽂件后缀名)⼆、删除⽂件或⽬录BAT命令:1、新建.BAT批处理⽂件输⼊如下命令,然后将要删除的⽂件拖放到批处理⽂件图标上即可删除。
DEL /F /A /QRD /S /Q三、强制删除⼯具软件推荐:1、绿鹰⽂件解锁删除器FileSuperDelete2、PowerTool.exe3、Unlocker 1.8.7在Windows系统中,我们难免会遇到⽤常规⽅法⽆法删除⽂件的情况。
尤其是使⽤Windows XP系统的⽤户,遭遇此类问题的频率更⾼。
为了解除⽤户的困惑,我们将尝试通过各种⾮常规的⼿段有效地删除那些顽固⽂件。
⼀、删除顽固⽂件的常规⽅法1.重新启动Windows操作系统后,再按常规⽅式删除⽂件。
2.在DOS(或命令提⽰符)界⾯中⽤Del、Deltree之类的命令删除。
3.利⽤⾮Windows资源管理器的第三⽅⼯具删除,例如具有浏览⽂件夹功能的Total Commander、ACDSee、FlashFXP、Nero等软件。
4.如果你安装了两个以上的操作系统,那么就可以在当前系统中删除其它操作系统的⽂件。
5.在启动时按F8键选择进⼊安全模式执⾏删除操作。
下⾯,我们将针对具体问题做具体分析,为⼤家介绍因各种原因不能删除⽂件时应采取的⾮常规⽅法。
⼆、删除“其它程序正在使⽤”的⽂件问题表现:Windows XP系统中,准备删除⼀个⼤容量的AVI格式⽂件,但系统却总是提⽰⽆法执⾏删除操作,有别的程序在使⽤,即使刚开机进⼊Windows系统时也是如此。
问题解决:⽅法1:打开记事本,点击菜单栏“⽂件”→“另存为”,命名⽂件和你想删除的那个⽂件名⼀致(包括扩展名),⽽后进⾏替换,会发现容量变为0 KB了。
此时,执⾏删除命令即可。
方法一:删除文件夹的方法例如:你D盘有个文件夹名为bat删除方法:运行cmd 回车输入rd d:\bat 回车就行了删除文件的方法:例如:E盘有个压缩文件名为nest.rar删除方法:运行cmd 回车输入del e:\nest.rar 回车就可将这个文件删除.第一rd只能删除文件夹是不能删除文件的.第二del 只能删除文件,不能删除文件夹,如果删除文件必须要把文件的格式加上才能删除.补充问题:如果要删除bat文件夹以下所有文件:运行cmdrd /s /q d:\bak 回车这样bat 以下不管是文件夹还是文件都可以删除的.方法二:Windows XP在命令模式下删除目录(目录就是档案总管中所谓的资料夹)不是用deltree,而是用rmdir 指令删除文件夹里面的所有东西。
在Windows XP、2000、NT下都可用rmdir指令删除整个目录,好比说我要删除test 这个目录下的所有目录和档案,这语法就是:rmdir /s/q test其中:/s 是代表删除所有子目录跟其中的档案。
/q 是不要它在删除档案或目录时,不再问我Yes or No 的动作。
要删除的目录前也可以指定路径,如:rmdir /s/q d:\temp\test这意思是告诉计算机,把磁盘驱动器D 的temp资料夹里面的test资料夹中的所有东西全部删除,同时也不要再问我是否要删除。
方法三:(1)DELTREE——删除整个目录命令1.功能:将整个目录及其下属子目录和文件删除。
2.类型:外部命令3.格式:DELTREE[盘符:]〈路径名〉4.使用说明:该命令可以一步就将目录及其下的所有文件、子目录、更下层的子目录一并删除,而且不管文件的属性为隐藏、系统或只读,只要该文件位于删除的目录之下,DELTREE 都一视同仁,照删不误。
使用时务必小心!!!RD——删除子目录命令1.功能:从指定的磁盘删除了目录。
2.类型:内部命令3.格式:RD[盘符:][路径名][子目录名]4.使用说明:(1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身;(2)不能删除根目录和当前目录。
批处理文件BAT命令大全一.简单批处理内部命令简介命令打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo 命令将显示当前回显设置。
语法echo [{on│off}] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。
2.@ 命令表示不显示@ 后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y 是一样的。
)命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。
)Sample:if {%1}=={} goto noparmsif {%2}=={} goto noparms(如果这里的if、%1、%2就是表示变量。
)@Rem check parameters if null show usage:noparmsecho Usage: ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签, : 开头的字符行 , 在批处理中都被视作标号 , 而直接忽略其后的所有内容 , 只是为了与正常的标号相区别 , 建议使用 goto 所无法识别的标号 , 即在 : 后紧跟一个非字母数字的一个特殊符号 . goto 命令就是根据这个:来寻找下一步跳到到那里。
bat命令⽂件操作在做空间数据处理(切⽚、栅格、⽮量等)的时候,数据量总是庞⼤的,有时候⼜不想开⼀个专门的程序执⾏⼤量、重复的⽂件操作,windows本⾝⾃带的bat命令是个很好的选择(简单,处理速度快)。
1 dir 该命令可以获取某个⽂件夹下所有的⽂件名及扩展dir #显⽰当前⽬录中的⽂件和⼦⽬录dir /a #显⽰当前⽬录中的⽂件和⼦⽬录,包括隐藏⽂件和系统⽂件dir c: /a:d #显⽰ C 盘当前⽬录中的⽬录dir c: /a:-d #显⽰ C 盘根⽬录中的⽂件dir c: /b/p #/b只显⽰⽂件名,/p分页显⽰dir *.exe /s #显⽰当前⽬录和⼦⽬录⾥所有的.exe⽂件2 cd 该命令⽤于进⼊当前⽂件夹,以便执⾏程序或其他操作cd #进⼊根⽬录cd #显⽰当前⽬录cd /d d:\sdk #可以同时切换盘符和⽬录3 md 该命令⽤于创建⽂件或⽂件夹md d:\a\b\c #如果 d:\a 不存在,将会⾃动创建中级⽬录#如果命令扩展名被停⽤,则需要键⼊ mkdir \a\b\c。
4 rd 该命令⽤于删除⽂件夹相关内容,⽐单⼀的del 删除⽂件操作权限⼤rd abc #删除当前⽬录⾥的 abc ⼦⽬录,要求为空⽬录rd /s/q d:\temp #删除 d:\temp ⽂件夹及其⼦⽂件夹和⽂件,/q安静模式5 del 删除⽂件del d:\test.txt #删除指定⽂件,不能是隐藏、系统、只读⽂件del /q/a/f d:\temp\ *.*删除 d:\temp ⽂件夹⾥⾯的所有⽂件,包括隐藏、只读、系统⽂件,不包括⼦⽬录del /q/a/f/s d:\temp\ *.*删除 d:\temp 及⼦⽂件夹⾥⾯的所有⽂件,包括隐藏、只读、系统⽂件,不包括⼦⽬录1) 删除⼀个⽂件或多个⽂件del /s /q /f d:\test\a.bat将直接删除d:\test\a.bat,没有任务提⽰del temp\* /q /f /s将直接删除本⽬录的 temp ⽬录的所有⽂件,没有任务提⽰删除⽂件的时候可以使⽤“*”作通配符2) 删除⼀个空⽬录rd /q /s d:\test\log将直接删除d:\test\log⽬录,如果log⽬录⾥⾯有⽂件将⽆法删除3) 删除⼀个⾮空⽬录 (必须指定⽬录名称)rmdir /q /s d:\test\logs必须指定⽬录名称,不能使⽤通配符/S 除⽬录本⾝外,还将删除指定⽬录下的所有⼦⽬录/Q 安静模式,带 /S 删除⽬录树时不要求确认⽆论⾥⾯是否有⽂件或⽂件夹将全部直接删除6 copy 拷贝⽂件copy c:\test.txt d:\test.bak7 xcopy 拷贝⽂件,外部命令xcopy d:\mp3 e:\mp3 /s/e/i/y复制 d:\mp3 ⽂件夹、所有⼦⽂件夹和⽂件到 e:\,覆盖已有⽂件加 /i 表⽰如果 e:\ 没有 mp3 ⽂件夹就⾃动新建⼀个,否则会有询问8pause 暂停命令pause 暂停执⾏,按任意键继续。
批量删除同名文件的格式-范文模板及概述示例1:在日常工作中,我们经常会遇到要删除大量同名文件的情况。
这些同名文件可能是在不同位置、不同日期或不同格式下存储的,如果要手动一个个删除将会非常耗时费力。
因此,有必要学习一些批量删除同名文件的格式。
首先,我们可以使用命令行工具来批量删除同名文件。
在Windows 系统中,我们可以使用命令“del /s filename”来删除指定名称的文件。
其中,/s表示在当前目录及其子目录中搜索匹配的文件。
这样就可以一次性删除所有同名文件了。
在Linux系统中,我们可以使用命令“rm filename”来删除指定名称的文件。
如果文件存储在不同的子文件夹中,我们可以使用“rm -r*/filename”来批量删除所有同名文件。
除了命令行工具,我们还可以使用脚本来批量删除同名文件。
通过编写简单的脚本,我们可以自动化完成删除同名文件的任务。
比如,使用Python编写一个脚本来递归搜索指定文件夹下的所有同名文件,并删除它们。
这样就可以省去手动一个个删除的繁琐步骤。
在使用命令行工具或脚本删除同名文件时,一定要慎重操作。
确保你删除的是正确的文件,以免造成不必要的损失。
另外,最好在删除文件之前做好备份工作,以免误删重要文件而造成数据丢失。
总之,学习并掌握批量删除同名文件的格式,可以在工作中帮助我们提高工作效率和节省时间。
同时,我们也需要谨慎操作,以免造成意外损失。
希望这些方法能对你有所帮助。
示例2:批量删除同名文件的格式在日常工作中,我们经常会遇到需要批量删除同名文件的情况。
这可能是因为我们在不同的文件夹中存储着相同的文件,或者是因为我们需要清理一些旧的文件。
无论出于何种目的,批量删除同名文件都是一个常见的需求。
在这篇文章中,我们将会介绍一些批量删除同名文件的格式,以帮助读者更加高效地完成这项任务。
以下是一些常见的格式:1. 使用通配符在命令行中,我们可以使用通配符来匹配多个文件。
BAT⽂件命令详解⼀.简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显⽰消息。
如果没有任何参数,echo 命令将显⽰当前回显设置。
语法:echo [{on│off}] [message]Sample:@echo off / echo hello world在实际应⽤中我们会把这条命令和重定向符号(也称为管道符号,⼀般⽤> >> ^)结合来实现输⼊⼀些命令到特定格式的⽂件中.这将在以后的例⼦中体现出来。
2.@ 命令表⽰不显⽰@后⾯的命令,在⼊侵过程中(例如使⽤批处理来格式化敌⼈的硬盘)⾃然不能让对⽅看到你使⽤的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...@format X: /q/u/autoset (format 这个命令是不可以使⽤/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是⼀样的。
)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下⼀⾏开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的⾏。
)Sample:if {%1}=={} goto noparmsif {%2}=={} goto noparms(如果这⾥的if、%1、%2你不明⽩的话,先跳过去,后⾯会有详细的解释。
)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:⽤来表⽰这个字母是标签,goto命令就是根据这个:来寻找下⼀步跳到到那⾥。
最好有⼀些说明这样你别⼈看起来才会理解你的意图啊。
4.Rem 命令注释命令,在C语⾔中相当与/*--------*/,它并不会被执⾏,只是起⼀个注释的作⽤,便于别⼈阅读和你⾃⼰⽇后修改。
windows机器中删除指定日期文件和目录的bat
注:此乃转载,原文出处:/liuyunfengheda?viewmode=list 一、删除文件的:
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=H:/test
rem 指定天数
set DaysAgo=2
>"%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 /r "%SrcDir%" %%a in (*.*) do (
set "FileDate=%%~na"
set "FileDate=!FileDate:~4,10!"
if "!FileDate!" leq "%DstDate%" (
if exist "%%a" (
echo del "%%a"
)
)
)
pause
二、删除目录及目录下的文件的:
@echo off
::演示:删除指定路径下指定天数之前(以文件夹名中包含的日期字符串为准)的文件夹。
::如果演示结果无误,把rd前面的echo去掉,即可实现真正删除。
::本例假设文件夹名中包含的日期字符串(比如:Archive-2009-12-25)
rem 指定待删除文件夹的存放路径
set SrcDir=H:/test
rem 指定天数
set DaysAgo=20
>"%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 ("%SrcDir%/*.*") do (
set "FolderDate=%%~na"
set "FolderDate=!FolderDate:~0,10!"
if "!FolderDate!" leq "%DstDate%" (
if exist "%%a/" (
echo rd /s /q "%%a"
)
)
)
pause
以上是根据007的整理而来,007保留原权利!。