批处理命令--文件篇之del

admin 2025-05-17 80人围观 ,发现141个评论

批处理命令--文件篇之del

del是一个内部命令,erase是它的同义词,因此它们的功能是相同的,作用都是删除一个或多个文件。

首先还是看下语法:

删除一个或数个文件。

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

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

names指定一个或数个文件或目录列表。通配符可被用来

删除多个文件。如果指定了一个目录,目录中的所有文件都会被删除。(filenames,foldernames,pathnames)

/P删除每一个文件之前提示确认。(prompt)

/F强制删除只读文件。(force)

/S从所有子目录删除指定文件。(subdirectory)

/Q安静模式。删除全局通配符时,不要求确认。(quiet)

/A根据属性选择要删除的文件。(attributes/attrib)

attributes

R只读文件S系统文件

H隐藏文件A存档文件

-表示“否”的前缀

这个命令比较简单,主要是2个方面:

1.这个命令是删除文件的命令,不是文件夹。

2.批处理中一般带参数使用,如del/s/q/f/a。

如一个批处理的语句:

for/r%path1%\%%iin(%files%)doifexist%%idel/s/q/f/a"%%i"echo%%~fti删除完成!

/s/q一般配合使用用于静默删除所有文件(包括子目录下的);

/f/a一般配合使用,用于删除所有的文件(含只读或隐藏或系统等属性的文件)。

详解:

1.名字可以是文件名、文件夹名、路径名等。

支持通配符,可用来删除一个或多个文件。

也可以使用多个文件名,用空格、逗号或分号分开文件名。

也可以指定目录,目录中有空格需要加双引号括起来,目录中的所有文件都会被删除。

例:

"C:\demofiles\"

del*.doc

del?A.*

deltest

delc:\test

delc:\test\*.*

Wildcards(通配符):Thesecanbecombinedwithpartofafilename(这些能与文件名的一部分组合)

*Matchanycharacters(匹配任何字符,可以一个或多个)

?MatchanyONEcharacter(匹配任一个字符,只一个)

2.参数

/P删除每一个文件之前提示确认。删除文件夹下的所有文件时,即使没有这个参数,默认也会提示。

如果不需要确认,就使用/Q(参数、命令、路径等不分大小写),注意不是/-P(/-P在这里和/P是一个样,都需要确认)。

提示:Areyousure(Y/N)?,或Delete(Y/N)?按y或Y就是删除,按N或n就是不删除。

/F遇到访问被拒绝,无法删除的情况,一般是遇到只读文件了,使用/F来强制删除只读文件。

/F/A遇到找不到文件的情况,无法删除;如果文件真实存在,一般是遇到隐藏或系统文件了,使用/F/A删除,这也是万用的删除搭配。

/S还想删除目录树,子目录下的文件,加上/S。

/Q删除不需要确认,静默删除。

/AR同于/A:R,不同于/A-R,前者表示只读文件,后者表示除只读文件外。

另外del/ar/sd:\123\*.*与del/f/sd:\123\*.*并不是一样的效果,前者只删除只读文件,或者删除只读文件和除系统、隐藏文件以外的文件。

del/s/q与rd/s/q的区别

先来看下这2个命令的描述与参数

del的描述与参数

Deletesoneormorefiles.

/SDeletespecifiedfilesfromallsubdirectories.

/QQuietmode,donotaskifoktodeleteonglobalwildcard

rd的描述与参数

Removes(deletes)adirectory.

/SRemovesalldirectoriesandfilesinthespecifieddirectory

/QQuietmode,donotaskifoktoremoveadirectorytreewith/S

区别:

del/s/q是删除所有文件,不删除目录;rd/s/q是删除目录本身连同所有文件。

rd提到了一个目录树的概念,什么是目录树呢?

目录树:

目录树是一种表示文件夹和文件结构的图形方式。它可以帮助你快速查看和管理你的文件。目录树的根目录是最上层的文件夹,它包含了所有的子文件夹和文件。

在Windows系统中,你可以使用tree命令来生成目录树。例如,如果你想要生成当前文件夹的目录树,并保存到一个文本文件中,你可以输入:

tree/

这样就会在当前文件夹中创建一个名为的文件,里面包含了目录树的内容。

FolderPATHlistingforvolumeWindows

VolumeserialnumberisA83E-B07F

C:.

├─IC

└─DC

└─IT

下面是演示:

RD:

C:\Temprd/s/q665

C:\Tempcd665

Thesystemcannotfindthepathspecified.

DEL:

C:\Tempdel/s/q665

Deletedfile-C:\Temp\665\

C:\Temp\665\

Accessisdenied.

Deletedfile-C:\Temp\665\

Deletedfile-C:\Temp\665\IC\

Deletedfile-C:\Temp\665\DC\IT\

C:\Temp\665attrib

ARC:\Temp\665\

ASC:\Temp\665\

C:\Temp\665

ARC:\Temp\665\

C:\Temp\665del/

C:\Temp\665

ASC:\Temp\665\

C:\Temp\665del/

CouldNotFindC:\Temp\665\

C:\Temp\665del/f/

C:\Temp\665dir

VolumeindriveCisWindows

VolumeSerialNumberisA83E-B07F

DirectoryofC:\Temp\665

06/27/202311:21AMDIR.

06/27/202311:21AMDIR..

06/27/202311:12AMDIRIC

06/27/202308:01AMDIRDC

0File(s)0bytes

4Dir(s)313,234,214,912bytesfree

结论:

1.rd/s/q可以删除目录及其子目录下的文件,含系统文件、隐藏文件、只读文件等

2.del/s/q只能删除目录及其子目录下的文件,不能删除目录,也不能删除只读、系统或隐藏文件。

如果要删除只读文件,需加参数/f,如果要删除系统或隐藏文件或其他属性的文件,需要另加参数/a,加了/f/a参数的del/s/q/f/a除了不能删除目录基本等同于rd/s/q。

换言之,如果要保留目录用del/s/q/f/a,如果不保留目录用rd/s/q。

猜你喜欢
    不容错过