【WINDOWS / DOS 批处理】attrib命令详解(一)

命令格式

 

【格式一】attrib [+R] [-R] [+A] [-A] [+S] [-S][+H] [-H] [[drive:] [path] [filename]  

【格式二】attrib [+R] [-R] [+A] [-A] [+S] [-S][+H] [-H] [[drive:] [path] [filename]  /S 

【格式三】attrib [+R] [-R] [+A] [-A] [+S] [-S][+H] [-H] [[drive:] [path] [filename]  /S /D

命令功能

先根据  [drive:] [path] [filename] 参数找出与之对应的匹配文件(或目录),然后再显示(或设置或清除)这些匹配文件(或目录)的属性。常见的属性有系统属性、只读属性、隐藏属性、归档属性。

【+R和-R参数】

设置或清除匹配文件(或目录)的只读属性。+R 表示设置只读属性, -R 表示清除只读属性。

【+A和-A参数】

设置或清除匹配文件(或目录)的归档属性。+A 表示设置归档属性,-A 表示清除归档属性。

【+S和-S参数】

设置或清除匹配文件(或目录)的系统属性。+S 表示设置系统属性, -S 表示消除系统属性。

【+H和-H参数】

设置或清除匹配文件(或目录)的隐藏属性。+H 表示设置隐藏属性, -H 表示清除隐藏属性。

上述八个参数都不存在的attrib命令是查看属性,使用它们的attrib命令是设置或清除属性

 【设置/清除属性】

        示例 

c:\out>attrib demo.bat      // 查看 demo.bat 的文件属性
A                    C:\out\demo.bat

c:\out>attrib +h demo.bat   // 给 demo.bat 文件添加 h属性

c:\out>attrib demo.bat
A   H                C:\out\demo.bat

c:\out>attrib -h demo.bat   // 清除 demo.bat 文件的 h属性

c:\out>attrib demo.bat
A                    C:\out\demo.bat

c:\out>

注意点

一、同一条sttrib命令中,不能出现多个  [drive:] [path] [filename]  

         示例

C:\out>dir /b /a:d               // 查看当前目录下的所有子目录
hideDir
myDir

C:\out>dir /b /a:-d             // 查看当前目录下的所有文件
a.txt
b.txt
demo.bat

C:\out>attrib hideDir myDir
参数格式不正确 -

C:\out>attrib a.txt b.txt
参数格式不正确 -

C:\out>attrib a.txt hideDir
参数格式不正确 -

C:\out>

二、[drive:] [path] [filename] 不能以“\”结尾,即使[drive:] [path] [filename]是一个目录名称。

        示例

c:\out>dir /b /a:d
hideDir
showDir

c:\out>attrib hideDir\
找不到文件 - hideDir\

c:\out>attrib hideDir
    H                C:\out\hideDir

c:\out>

 

由于以下原因:

  •  [drive:] [path] [filename] 在【格式一】(不带/S和/D参数)中的含义,与它在【格式二】(带有/S参数)、【格式三】(带/S和/D参数)中的含义不同;
  •  [drive:] [path] [filename] 在【格式一】、【格式二】、【格式三】中的缺省值不同;
  •  [drive:] [path] [filename] 中使用的通配符在上述三种格式中,含义也不尽相同

所以,三种格式的attrib命令最终匹配的文件(或目录)是不同的。 下面分别来介绍。

【格式一】

attrib [+R] [-R] [+A] [-A] [+S] [-S][+H] [-H] [[drive:] [path] [filename]  

【[drive:] [path] [filename]参数

drive 指定filename所在的驱动器名称,例如:C、D 

path 指定filename所在的路径 

filename 指定的要查看属性的文件(或目录)

在【格式一】中,[drive:] [path] [filename] 是一个整体,不能分开来看。

如果 [drive:] [path] [filename] 不是以驱动器开头,则其默认路径是相对于当前目录的

如果 [drive:] [path] [filename] 不存在,则缺省值为当前目录下的所有文件

        示例

 1、 [drive:] [path] [filename] 可以指定一个文件,也可以指定一个目录。 

        示例 

C:\out>dir /b /a:d
hideDir

C:\out>dir /b /a:-d
a.txt
demo.bat

C:\out>attrib a.txt     // [drive:] [path] [filename] 是 a.txt (文件)
A   H        C:\out\a.txt

C:\out>attrib hideDir   // [drive:] [path] [filename] 是 hideDir (目录)
    H        C:\out\hideDir

c:\out>

2、 [drive:] [path] [filename] 可以为隐藏文件,也可以为隐藏目录

        示例

C:\out>dir /b /a:hd
hideDir

C:\out>dir /b /a:h-d
b.txt

C:\out>attrib hideDir
    H        C:\out\hideDir

C:\out>attrib b.txt
A   H        C:\out\b.txt

C:\out>

3、 [drive:] [path] [filename] 中,通配符只能用于 filename 中(通配符不能用于path和drive中),如果 filename  中包含通配符,则只能匹配文件名,而不能匹配目录名

C:\out>dir /b /a:-d
a.txt
demo.bat

C:\out>dir /b /a:d
hideDir
myDir

c:\out>attrib c:\?ut\a.txt  //  [drive:] [path] [filename] 中,通配符不能用于path中
找不到路径 - C:\?ut

C:\out>attrib a.t?t
A   H        C:\out\a.txt

C:\out>attrib a*
A   H        C:\out\a.txt

C:\out>attrib hideD?r
找不到文件 - hideD?r

C:\out>attrib hide*
找不到文件 - hide*

C:\out>

写作不易,本文如能帮到您,麻烦您 “在下面一圈三连”

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值