admin 管理员组

文章数量: 1087649


2024年12月30日发(作者:构造哈夫曼树静态三叉链表)

批处理命令删除文件,重命名文件

@echo off

rem %1 为路径参数;

rem del /q /s del /q /s D:数据库-勿删 删除

文件

rem rename D:数据库-勿删 重

命名文件

del /q /s %

rename %

一、删除文件

1、自动删除文件批处理

Example: del /q /s d: //将直接删除d:,

没有任务提示

2、自动删除目录空

Example: rd /q ?s d:testlog //将直接删除d:testlog目录,

如果log目录里面有文件将无法删除

3、删除非空文件的目录

Example:rmdir /q /s d:testlogs //无论里面是否有文件或文件

夹将全部直接删除

Note: 2和3在删除文件时不足之处是必须指定目录名称,Del删

除文件的时候可以使用 “*”代替。

二 、重命名文件

rename 旧文件 新文件名

ren取自rename的前三个字母,name在英文中有“为……取名”

的意思,而re是前缀,有“重新做某事”的含义,结合起来,

rename就是重命名的含义。

ren 的用法很简单,其使用格式为:ren 旧文件 新文件名。例如,

把改写为,使用 ren 即可。

需要注意的是,旧文件可以使用绝对路径,也可以使用相对路径,

但是,新文件名不能使用任何路径,只能是新的文件名,即使这个路

径就是当前目录。例如:需要修改d:这个文件的名字为

的话,如果当前路径位于d:test,那么,命令可以写成:ren

、ren d: ,但是,绝对不能写成

ren d: d:这样的格式。之所以会有这个古怪

的规定,可能是一旦把路径写成另外的目录,ren就具备了“移动文件

+重命名文件”的功能了,这和它的定位不相符。

虽然ren的用法很简单,但是,它的功能却很强大,这主要得益

于ren支持*和?这两个通配符:*表示任意多个字符,?表示一个字符。

例如,要把所有的以.txt作为后缀名的文件改为以.doc作为后缀名,

使用ren *.txt *.doc 即可,简简单单的一条语句,瞬间就改动了大量

的文件,CMD命令简洁而又不失强大的特点在这里体现得淋漓尽致。

又例如,要把以abc字符串打头、并且只有5个字符的txt文件改名为

以xyz字符串打头,那么,可以这样写:ren abc??.txt xyz??.txt。

需要引起高度重视的是,ren在使用通配符的时候,它的匹配规则

十分奇特且过于复杂,不适合新手理解,在此不再展开做详细的解释。

若想了解其中的详情,请参考这篇帖子:这是不是ren的一个bug?。

若确实需要使用通配符,建议熟读这篇帖子;若实在难以理解,则退

而求其次,只用通配符做后缀名的修改工作,可以不用深究这些复杂

的规则。

对于文件夹,ren同样适用。

ren还有一个十分奇特的属性:当文件具备隐藏属性或系统属性的

时候,ren将不起作用,需要把文件的隐藏或系统属性去掉方可更名,

对只读属性的文件,ren可顺利更名。这在很多时候给我们制造了很多

麻烦:当你不知道要即将更名的文件是否具备隐藏或系统属性的时候,

直接ren是很成问题的,;如果希望在重命名文件的时候,还必须保

持原有的文件属性,则更加让人痛苦万分。

怎么办?

如果不介意文件的属性是否被改动,那么,保险的做法是,用

attrib -s -h 命令先去掉文件可能存在的系统属性或隐藏属性,然后再

ren之;如果还要求更名后的文件要保持原有的属性的话,高效的做法

是:先用for语句中的 %%~ai 扩展获取原文件的属性,经过处理之后

保存到变量中去,然后用 attrib -s -h 去掉文件可能存在的系统属性或

隐藏属性,ren之后,再读取保留在变量中的属性值,用 attrib 恢复原

有的文件属性。

/


本文标签: 文件 属性 系统 使用 删除