标题: [原创] 【续】[一日一教学](15)设置文件属性:attrib [打印本页]
作者: Hello123World 时间: 2011-8-27 14:46 标题: 【续】[一日一教学](15)设置文件属性:attrib
本帖最后由 Hello123World 于 2011-11-7 15:46 编辑
【原】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-2576-1-1.html
【续】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-13798-1-1.html
帮助信息:- 显示或更改文件属性。
-
- ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
- [drive:][path][filename] [/S [/D] [/L]]
- + 设置属性。
- - 清除属性。
- R 只读文件属性。
- A 存档文件属性。
- S 系统文件属性。
- H 隐藏文件属性。
- I 无内容索引文件属性。
- [drive:][path][filename]
- 指定 attrib 要处理的文件。
- /S 处理当前文件夹及其所有子文件夹中的匹配文件。
- /D 也处理文件夹。
- /L 处理符号链接和符号链接目标的属性。
复制代码
如果是使用xp的同学,可能会发现,这个帮助信息比你的帮助信息多出了一个“参数/l”还有一个“I 无内容索引文件属性”。
“符号链接”和“索引文件”都是后xp时代引进的新概念(据说vista采用了这些技术,win7中是实打实的见识到了),如果要介绍/l 和 i 又不得不说明“符号链接”和“索引文件”,但这两个概念我自身都没明白透彻,所以决定暂时不讲,待日后学透彻了,再来补充本教程。
命令概括:
attrib,全英文attribute,意为:属性;下辖2个参数(不包括/l),可设置4种属性(不包括“属性 i”)。
参数详解:
首先输入光杆attrib。
例如:- C:\Users\helloworld\Desktop>attrib
- A C:\Users\helloworld\Desktop\02.txt
- A I C:\Users\helloworld\Desktop\1.txt
- A C:\Users\helloworld\Desktop\3.txt
- A C:\Users\helloworld\Desktop\48个音标视屏提取器.bat
- A C:\Users\helloworld\Desktop\a.txt
- A C:\Users\helloworld\Desktop\aboboo.lnk
- A C:\Users\helloworld\Desktop\BaiduHelpBook.chm
- A C:\Users\helloworld\Desktop\Batch external command.txt - 快捷方
- nk
- A C:\Users\helloworld\Desktop\clip.txt
- A C:\Users\helloworld\Desktop\clip1.bat
- SH C:\Users\helloworld\Desktop\desktop.ini
- A C:\Users\helloworld\Desktop\Google 翻译.url
- A C:\Users\helloworld\Desktop\hello.bat
- A C:\Users\helloworld\Desktop\HprSnap6.exe.lnk
- A C:\Users\helloworld\Desktop\Internet Explorer.lnk
- A C:\Users\helloworld\Desktop\MyRarHelp.txt
- A C:\Users\helloworld\Desktop\new 2.bat
- A C:\Users\helloworld\Desktop\QQ影音.lnk
- A C:\Users\helloworld\Desktop\Script56.CHM - 快捷方式.lnk
- A C:\Users\helloworld\Desktop\test.bat
- A C:\Users\helloworld\Desktop\test.txt
- A C:\Users\helloworld\Desktop\test.vbs
- A C:\Users\helloworld\Desktop\VB6企业版.EXE.lnk
- A C:\Users\helloworld\Desktop\Windows Live Writer.lnk
- A C:\Users\helloworld\Desktop\两大搜索引擎集合器.bat
- R C:\Users\helloworld\Desktop\傲游浏览器2.lnk
复制代码
可以看出,显示了桌面上所有的文件属性,同时也列出了所有文件的完全路径(思考:由后面这一点,同学们可以想到什么呢?)- /S 处理当前文件夹及其所有子文件夹中的匹配文件。
复制代码
/s,全英文subdirectory,意为:子目录。(可以看出,其实很多参数都是相通的,dir 中的 /s,rd中的 /s皆是“子目录”的意思)
既然有/s参数,那么attrib自然默认也是不会显示“子文件夹中文件的属性”。
我的桌面上其实还有4个文件夹,其中有个“520”文件夹,看看加上/s后能否把里面的内容显示出来。
例如:- C:\Users\helloworld\Desktop>attrib /s
- A C:\Users\helloworld\Desktop\520\12\world_hello.txt
- A C:\Users\helloworld\Desktop\520\1.bat
- A I C:\Users\helloworld\Desktop\520\1.doc
- A C:\Users\helloworld\Desktop\520\115优蛋.lnk
- A C:\Users\helloworld\Desktop\520\360安全桌面.lnk
- A C:\Users\helloworld\Desktop\520\code.exe - 快捷方式.lnk
- A C:\Users\helloworld\Desktop\520\ComicAiII.exe - 快捷方式.lnk
- A C:\Users\helloworld\Desktop\520\DeskSpace.lnk
- A C:\Users\helloworld\Desktop\520\ezproxy.exe - 快捷方式.lnk
- A C:\Users\helloworld\Desktop\520\FinalData 2.0 OEM.lnk
- A C:\Users\helloworld\Desktop\520\Format Factory.lnk
- A C:\Users\helloworld\Desktop\520\KKJDock.exe.lnk
- A C:\Users\helloworld\Desktop\520\mhdesk.exe.lnk
- A C:\Users\helloworld\Desktop\520\PPTV在线影视.lnk
- A C:\Users\helloworld\Desktop\520\PP游戏世界.lnk
- A C:\Users\helloworld\Desktop\520\QQ影音.lnk
- A C:\Users\helloworld\Desktop\520\WPS文字.lnk
- A C:\Users\helloworld\Desktop\520\WPS演示.lnk
复制代码
显示出来了,而且最先显示的就是520文件夹中的文件属性。复制代码
/d,全英文directory,意为:目录(dos时代的旧称,windows称文件夹)。
还是逆向的思考,既然有这个参数,那么attrib自然默认也是不显示文件夹的。
加上/d参数会怎么样呢?
例如:- C:\Users\helloworld\Desktop>attrib /s /d
- A C:\Users\helloworld\Desktop\520\12\world_hello.txt
- A C:\Users\helloworld\Desktop\520\1.bat
- A I C:\Users\helloworld\Desktop\520\1.doc
- A C:\Users\helloworld\Desktop\520\115优蛋.lnk
- C:\Users\helloworld\Desktop\520\12
- A C:\Users\helloworld\Desktop\520\360安全桌面.lnk
- A C:\Users\helloworld\Desktop\520\code.exe - 快捷方式.lnk
- A C:\Users\helloworld\Desktop\520\ComicAiII.exe - 快捷方式.lnk
- A C:\Users\helloworld\Desktop\520\DeskSpace.lnk
- A C:\Users\helloworld\Desktop\520\ezproxy.exe - 快捷方式.lnk
- A C:\Users\helloworld\Desktop\520\FinalData 2.0 OEM.lnk
- A C:\Users\helloworld\Desktop\520\Format Factory.lnk
- A C:\Users\helloworld\Desktop\520\KKJDock.exe.lnk
- A C:\Users\helloworld\Desktop\520\mhdesk.exe.lnk
- A C:\Users\helloworld\Desktop\520\PPTV在线影视.lnk
- A C:\Users\helloworld\Desktop\520\PP游戏世界.lnk
- A C:\Users\helloworld\Desktop\520\QQ影音.lnk
- A C:\Users\helloworld\Desktop\520\WPS文字.lnk
- A C:\Users\helloworld\Desktop\520\WPS演示.lnk
- A C:\Users\helloworld\Desktop\520\WPS表格.lnk
- A C:\Users\helloworld\Desktop\520\YodaoDict.exe.lnk
复制代码
看出差别来了吗?- C:\Users\helloworld\Desktop\520\12
复制代码
这是“520文件夹”下的“12文件夹”,没加/d时可是没有显示的。
以上都是显示,但是如何设置文件的属性呢?
请听我慢慢道来:
但凡文件,皆有属性。只读、存档、系统、隐藏,在attrib中就为r、a、s、h,其英文全称read、archives、system、hide。
+为加,-为减。加,便赋予属性,减,便删除属性。
以上说了那么多,其实真正常用的属性只有 h,和 h结合s。
给文件夹520添加隐藏属性。
例如:- C:\Users\helloworld\Desktop>attrib +h 520
复制代码
效果:
[attach]4344[/attach]
刷性之后,520就消失了。
这时候就删除其隐藏属性。
例如:- C:\Users\helloworld\Desktop>attrib -h 520
复制代码
效果:
[attach]4345[/attach]
系统属性配合隐藏属性使用,可以加强隐藏的效果。
例如:- C:\Users\helloworld\Desktop>attrib +s +h 520
-
- C:\Users\helloworld\Desktop>attrib -h 520
- 未重置系统文件 - C:\Users\helloworld\Desktop\520
复制代码
怎么解除这种加强隐藏的效果呢?
例如:- C:\Users\helloworld\Desktop>attrib -s -h 520
复制代码
扩展阅读:
1.其实,我一开始也不知道attrib可以光杆使用,但是我一看到attrib的语法,我就知道了。
这里就教教大家看命令语法的小知识:- ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
- [drive:][path][filename] [/S [/D] [/L]]
复制代码
除了attrib没有框在中括号中,其它的所有参数都在中括号中,这点信息就告诉了我,attrib可以光杆使用。
[]中的信息都是可选的参数,(可选参数:就是可以有,也可以没有)。
[|]这样的符号代码,虽然是可选参数,但只能二选其一,当然也可以是多选其一,且只能选一个。- C:\Users\helloworld\Desktop>attrib +h -h 520
- 参数格式不正确 -
复制代码
2.具有系统属性(+s)的文件、文件夹,不能随意改变其他属性(-a 或-h),需要改变其系统属性才能改变其他属性(-a -s或-h -s)。感谢yyykkkyyyy。
作者: CUer 时间: 2011-8-27 15:47
“符号链接”和“索引文件”都是win7中引进的新概念
Vista也有。
如果一个知识点自己不能确定,最好别下这种结论性的定义,尤其是在写教学帖的时候,以免误导他人。
作者: Hello123World 时间: 2011-8-27 15:49
回复 2# CUer
2003有没有呢?
作者: zaixinxiangnian 时间: 2011-8-28 12:10
写的好,支持
除了学会了它的用法之外
而且学会两个单词 archives (档案 存档) attribute (属性)
作者: surup 时间: 2011-11-5 14:25
复制代码
前者只有d:\123以及它同名的子目录设为了“隐藏”,而其它文件及子目录都没有设置“隐藏”。- attrib +h d:\123\*.* /s /d
复制代码
后者则将d:\123下的所有文件及子目录设置了“隐藏”属性,但d:\123目录没有设置“隐藏”属性。
有没有设置隐藏属性 将d:\123下的所有文件及子目录设置了“隐藏”属性的同时也将自身设置隐藏属性?
作者: yyykkkyyyy 时间: 2011-11-5 22:16
我是来学习的, 同时也提点建议
对此命令是否再加上一个小注意事项
如一文件加上系统属性或隐藏属性之后,又想改变其某种属性,比如:
attrib +s +h +r config.sys
想只去掉其中的隐藏属性, 若仅仅用 attrib -h config.sys 是不行的,必须把已带的系统属性或隐藏属性也列上:
attrib +s -h config.sys
或干脆连系统属性无论原来有没有加, 都一起去掉
attrib -s -h config.sys
实际上在原来DOS系统中, 经常用时把这三种属性(s h r) 要加一起加, 要去一起去的
我提这个的意思是可能会有人仅用attrib -h 仍去不掉隐藏属性
作者: xslxslxsl 时间: 2011-11-5 23:46
值得学习,谢谢分享
作者: Hello123World 时间: 2011-11-7 12:51
回复 6# yyykkkyyyy
系统属性配合隐藏属性使用,可以加强隐藏的效果——这里不是已经谈到了吗?
作者: yyykkkyyyy 时间: 2011-11-7 14:22
回复 8# Hello123World
哦,我只是说建议,个人理解加了系统属性并不单指加强隐藏,如果有系统性,单改只读属性同样也是不行,说得不对请指正
作者: raominping 时间: 2014-7-8 11:03
本帖最后由 raominping 于 2014-7-8 11:05 编辑
赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞。
作者: Tufeiheike 时间: 2014-9-9 19:21
赞 !! ! !
作者: shelluserwlb 时间: 2014-11-2 14:57
本帖最后由 shelluserwlb 于 2014-11-2 15:00 编辑
如果一个文件/文件夹设置了系统属性和隐藏属性后,如果用attrib命令单单只清除此文件夹的隐藏属性是去不掉的,必须要先清除此文件的系统属性才行。
例(win7系统):
attrib +s +h 1.txt
attrib -h 1.txt
系统提示: 未重置系统文件
attrib -s -h 1.txt
成功清除1.txt的隐藏属性。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |