IT技术互动交流平台

BAT遍历目录并去掉文件夹隐藏属性

作者:转载自知行近思  发布日期:2012-07-11 14:11:13

在实验室总是中病毒,文件夹变exe,原文件夹被隐藏,之前写过用attrib命令解决(http://www.it165.net/os/html/201207/2777.html)的方法,不过一个个的敲命令有点烦躁,毕竟文件夹比较多而且多是汉字,收到批处理打开程序(http://www.it165.net/os/html/201207/2778.html)的启发,找了一些资料,实现了批处理去掉文件夹的隐藏和系统属性。
方法如下:
新建一个bat文档,输入如下内容:


 for /F %%i in ('dir I: /ad /b') do (attrib -r -s -h I:%%i)

其中 dir I:是我优盘的盘符,可以根据自己的情况修改。
for /F命令对列出的结果中的每一行记录进行分析,%i为每一行的记录内容即这里的文件名完整路径, do后面的括号里是对文件名进行处理的命令集。
其中 dir I: /ad /b中的 /ad /b解释如下:
/b使用空格式(没有标题信息或摘要)
/a显示具有指定属性的文件./ad表示显示目录
(属性d目录,r只读文件,h隐藏文件,a准备存档的文件,s系统文件,-表示否的前缀)
/s显示指定目录或要有子目录中的文件。

%%i中,因为%是特殊字符,在bat中又要当做字符处理,所以用了两个%来表示%做字符处理。关于%的资料:
%
\\使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间;
单个%紧跟0-9的一个数字表示引用命令行参数;
用于for中表示引用循环变量;
连续的两个%表示执行时脱为一个%。

atrrib -r -s -h意思是去掉隐藏、系统、只读属性。关于attrib的资料:
显示或更改文件属性。

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 处理符号链接和符号链接目标的属性。

当然,把attrib换成其他命令,还可以做更多的事情,比如del。

Tag标签: BAT   遍历目录   文件夹隐藏属性  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规