自动去除所有目录的隐藏属性的DOS命令

最近老婆的U盘感染病毒, 根目录下的所有子目录均被设置成隐藏和系统属性. 可以采用如下命令修改:
ATTRIB -H -S <文件夹名称>

手动一个一个修改是可以的, 可是老婆嫌麻烦, 要我给她个更简单的方法, 最好动动鼠标就好, 呵呵, 这还不是小菜一碟.

问题分两部分解决:
1)如何得到这些目录名
可以通过DOS命令DIR取得:
DIR /A:H /A:S /B
注意此处要使用/B参数, 这样仅输出目录名字符串

2)如何解析DIR命令输出的结果
那就要动用终极武器, for命令:
for %F %%i in (...) DO ...
其中括弧内的"..."表示任意命令, for命令会解析括弧内命令的输出结果, 并将每一个字符串保存在%%i中.

完整的命令行如下:
@ECHO 去除当前目录下文件夹的隐藏属性
@ECHO 隐藏的目录如下:
DIR /A:H /A:S /B
@ECHO.
@ECHO 正在去除属性 
@ECHO OFF
FOR /F %%i IN ('DIR /A:H /A:S /B') DO ATTRIB -H -S %%i
@ECHO.
PAUSE

posted on 2009-07-21 21:13  codezhang  阅读(2055)  评论(2编辑  收藏  举报

导航