日期:2014-05-17  浏览次数:20886 次

Windows删除命令DEL详解

原文:http://seosin.blog.163.com/blog/static/116707084200942041153747/

删除一个或数个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

? names???????? 指定一个或数个文件或目录列表。通配符可被用来
??????????????? 删除多个文件。如果指定了一个目录,目录中的所
??????????????? 有文件都会被删除。

? /P??????????? 删除每一个文件之前提示确认。
? /F??????????? 强制删除只读文件。
? /S??????????? 从所有子目录删除指定文件。
? /Q??????????? 安静模式。删除全局通配符时,不要求确认。
? /A??????????? 根据属性选择要删除的文件。
? attributes????? R? 只读文件???????????????????? S? 系统文件
????????????????? H? 隐藏文件???????????????????? A? 存档文件
????????????????? -? 表示“否”的前缀

如果命令扩展名被启用,DEL 和 ERASE 会如下改变:

/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件

?

?

?

原文:http://blog.csdn.net/62guangye/archive/2010/01/29/5268627.aspx

?

语法
del [Drive:][Path] FileName [ ...][/p] [/f] [/s] [/q] [/a[:Attributes]]
erase [Drive:][Path] FileName [ ...][/p] [/f] [/s] [/q] [/a[:Attributes]]
参数
[Drive:][Path] FileName
指定要删除的文件或文件集的位置和名称。FileName 为必需项。可以使用多个文件名。用空格、逗号或分号分开文件名。
/p
提示您确认是否删除指定的文件。
/f
强制删除只读文件。
/s
从当前目录及其所有子目录中删除指定文件。显示正在被删除的文件名。
/q
指定安静模式。不对删除确认作出提示。
/a
根据指定的属性删除文件。
Attributes
可以是下表中列出的文件属性中的任意一种。 属性 描述
r 只读
a 存档
s 系统
h 隐藏
- 前缀表明“非”
/?
在命令提示符下显示帮助。
注释
使用 /p
如果使用 /p,del 将显示文件名,并发送如下消息:
FileName,要删除 吗?
按 Y 确认删除,按 N 取消删除并显示下一个文件名(如果指定了一组文件)。按 Ctrl+C 停止 del 命令。
禁用命令扩展
如果禁用命令扩展,/s 命令行选项显示没有找到的任意文件名,而不是显示正在删除的文件名(即,行为相反)。有关禁用命令扩展的详细信息,请参阅“相关主题”中的 cmd。
一次删除多个文件
通过键入 del 命令,后接 [Drive:]Path,可以删除文件夹中的所有文件。例如,以下命令可删除 \Work 文件夹中的所有文件:
del \work
还可以使用通配符(* 和 ?)一次删除多个文件。但是,在使用 del 命令时要慎重地使用通配符,以避免无意中删除文件。例如,如果键入如下命令:
del *.*
Del 命令显示以下提示:
该目录中的所有文件都被删除!是否确认 (Y/N)?
要删除当前文件夹中的所有文件,按 Y,然后按 Enter。要取消删除,按 N,然后按 Enter。
在与 del 命令一起使用通配符来删除一组文件之前,使用带有相同通配符的 dir 命令查看该组中包括的所有文件的列表。
要点
使用 del 从磁盘删除文件后,将无法检索。
可以从“故障恢复控制台”使用 del 命令(带有各种参数)。
示例
要删除驱动器 C:\ 上名为 Test 文件夹中的所有文件,请键入如下命令之一:
del c:\test
del c:\test\*.*

-----------------------------------------

:: cosdos 2009/10/25
:: --- 以Windows当前系统日期为基础。
:: --- 例当前系统日期:2009/10/25,则删除
:: --- 所有以“数据库备份_”开头,后缀日期
:: --- 小于等于“20090925”的所有文件加。

@Echo off
Setlocal EnableDelayedExpansion
Title 删除当前目录中,上个月的“数据库备份_”文件夹
:: cosdos 2009/10/25
Call :main
Pause
Exit

:LastMonth
??? Set /a yyyy=%1+10000
??? Set /a mm=%2+100
??? Set /a dd=%3+100
??? If "%2" == "01"? (
??????? Set mm=112 & Goto year
??? ) else (
??????? Set /a mm-=1 & Set lastmonthday=%yyyy:~1,4%!mm:~1,2!%dd:~1,2%
??? )
??? Exit /b
??? :year
??? Set /a yyyy-=1
??? Set lastmonthday=%yyyy:~1,4%%mm:~1,2%%dd:~1,2%
??? Exit /b
???
:main
??? Set myfolder=数据库备份_
??? Set yyyy=%date:~0,4%
??? Set mm=%date:~5,2%
??? Set dd=%date:~8,2%
??? Call:LastMonth %yyyy% %mm% %dd%
??? Echo.
??? Echo 删除当前目录中,“%myfolder%%lastmonthday%”之前的文件夹
??? For /d %%i in (数据库备份_*) do (
??????? Set folderdate=%%i&&if /i !folderdate:~-8! lEQ %lastmonthday% rd /s /q %%i
??? )
??? Exit /b

-----------------------

?

@echo off
title 编程论坛批量删除备份数据库DOS程序????????????????????? By:不说也罢
color 37
:First
cls
echo.
echo???????? 欢迎使用编程论坛批量删除备份数据库DOS程序
echo.
echo??????????????????? 制作:不说也罢
echo.
echo.
echo? 本程序是应编程论坛管理员“静夜思”要求所特别制作,请勿删除作者名字。
echo.
echo? 目录规则如从 数据库备份_19990101 到 数据库备份_29991231 之间的所有循环目录。
echo? 注意:年份和日期都是四位数字。
echo.
goto Date
:Date
echo.
set /p m=请输入四位数的年(如2009)? :
echo.
set /p d1=请输入起始日期(如0101)?? :
set /p d2=请输入终止日期(如1231)?? :
echo.
echo 继续操作将 删除 当前目录下从 数据库备份_%m%%d1% 到 数据库备份_%m%%d2% 之间的所有目录。
echo.
set /p go=你确认继续下一步操作吗?(Y/N):
if %go%==y goto Do else goto Begin
if %go%==Y goto