Board logo

标题: [求助]for命令修改所有隐藏文件属性 [打印本页]

作者: honyfox     时间: 2007-1-19 09:09    标题: [求助]for命令修改所有隐藏文件属性

原本打算用for命令来删除磁盘上所有的*.info文件,用的批处理命令是
for /r %%a in (c: d: e: f:) do tree /f > 1.txt
for %%a in (1.txt) do del *.info
但是*.info文件却被自动加了隐藏属性,不知道这个该怎么处理,请教大家了,多谢!

我开始用的是for /r %%a in (c: d: e: f:) do attrib -h *.info,但是运行发现只是在对当前目录的info文件作修改,如果改成for /r %%a in (c: d: e: f:) do attrib -h *.info %%a,就会提示参数错误。刚学批处理,对命令理解不够,请大家不吝赐教,再次致谢!

[ Last edited by honyfox on 2007-1-18 at 08:16 PM ]
作者: oilio     时间: 2007-1-19 09:12
楼主指的所有隐藏文件,说得好像很含糊啊,到底是硬盘上所有的隐藏文件你都想去掉它的属性,还是指把一个分区里的所有隐藏文件的属性去掉?还是别的??
作者: honyfox     时间: 2007-1-19 09:16
不好意思,刚才编辑的时候不小心按到Ctrl+Enter给发了,还没写完,Sorry
作者: lxmxn     时间: 2007-1-19 09:34
  如果是Windows XP的系统,在命令行试试下面这个命令?
for /f "skip=1" %i in ('wmic logicaldisk where "drivetype='3'" get caption') do @ del /s/a/f/q %i\*.info

作者: honyfox     时间: 2007-1-19 09:50
成功了,lxmxn真厉害!
第一次接触到wmic这个命令,刚去查了查,今天又有不小收获了,谢谢lxmxn了!
另外skip这里的用法我不懂,请教一下,谢谢!
作者: lxmxn     时间: 2007-1-19 09:57

  因为在for命令里面 ,skip=n代表忽略前n行,而这里wmic命令的输出的第一行是"Caption",如下图所示,所以这里用"skip=1"跳过第一行提取驱动器盘符。

  Quote:
Caption
C:
D:
E:
F:


作者: honyfox     时间: 2007-1-19 10:08
哦,懂了,谢谢lxmxn了 ^_^
作者: oilio     时间: 2007-1-20 01:30
强啊,这个命令我也很少看见,还有一次也是看见lxmxn发的,是得知计算机上一共有几个分区的。
作者: htysm     时间: 2007-1-20 03:17
DOS论坛真乃“牛人如云”啊。这么一行命令就能遍历电脑中的所有驱动器中的所有文件。
作者: oilio     时间: 2007-1-20 09:39
lxmxn能不能给我霁一下'wmic logicaldisk where "drivetype='3'" get caption'这段命令的含义。只知道logicaldisk好像是说逻辑磁盘,后面的就不知道了。这个命令是属于什么命令啊,很早前学过一点点dos的基础,好像没有碰过这个命令啊。。看了一下帮助里的,有些不大懂。
作者: lxmxn     时间: 2007-1-20 11:15
  Re oilio:

  这里的'wmic logicaldisk where "drivetype='3'" get caption'命令是获取磁盘驱动器盘符的,其中where相当于一个筛选,drivetype=3指定要筛选的驱动器类型代号为3的驱动器。当然,还有其它的类型,比如2代表软盘驱动器,3代表磁盘驱动器,5代表光盘驱动器(CD-ROM)。这里指定了是3,那么命令给出的,就是所有硬盘驱动器的盘符了;

  这里的get是一个动词,在WMIC里面,代表了获取一个别名的属性,caption就是logicaldisk别名的一个属性,其属性值正是驱动器的盘符;

  Logicaldisk还有其它的很多属性,比如DeviceID,DriveType,FreeSpace,ProviderName,Size,VolumeName等属性,可以用get动词来获取,具体的命令帮助就可以输入命令wmic logicaldisk get /?得到。

  建议你搜索一下前任版主3724668版主关于WMIC命令的使用,我也是刚学,不是很懂,有错误的地方,兄见谅了。


[ Last edited by lxmxn on 2007-1-19 at 10:24 PM ]
作者: tracert     时间: 2007-1-21 00:05
lxmxn你太厉害了
那个命令太有用了
作者: oilio     时间: 2007-1-21 03:50
嗯,好的,谢谢lxmln兄,我去学习学习。感觉这个命令挺有用的。受教了。
作者: lovesaly     时间: 2007-1-21 05:46
厉害啊
我还没有见过这个命令呢
又学到了一点东西咯
作者: bob1989     时间: 2007-1-22 10:02
C:\>wmic
'wmic' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
作者: hangyug     时间: 2007-1-23 01:38
帮助里面是这样说的,如果for /r后面不指定盘符的话,那么系统将默认当前盘符。
所以,LZ的
for /r %%a in (c: d: e: f:) do tree /f > 1.txt和
for /r %%a in (c: d: e: f:) do attrib -h *.info
都只会在当前盘符下执行,不会执行想要的4个盘符的。
作者: lxmxn     时间: 2007-1-23 07:20


  Quote:
Originally posted by bob1989 at 2007-1-21 21:02:
C:\>wmic
'wmic' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


  你是什么系统啊?

作者: lxmxn     时间: 2007-1-23 07:25


  Quote:
Originally posted by hangyug at 2007-1-22 12:38:
帮助里面是这样说的,如果for /r后面不指定盘符的话,那么系统将默认当前盘符。
所以,LZ的
for /r %%a in (c: d: e: f:) do tree /f > 1.txt和
for /r %%a in ( ...


  不是默认当前盘符,而是默认当前目录。

作者: bluemanlb     时间: 2007-1-24 12:39
我无语,就是一个字"牛",看样子这儿牛人奇多.
作者: czwtqcty     时间: 2007-1-24 14:23
学习中。。。
作者: blue812     时间: 2007-8-3 16:22
学习了...........
作者: zc1001zczc     时间: 2007-8-4 19:38
笑...15楼的如果是xp系统肯定是精简版,而且刚好被掐掉wmic
作者: luowei14     时间: 2007-8-15 16:45
...学习了。。。WMIC叼。。。
作者: kingyn     时间: 2007-8-27 20:03
好东西,就要学
作者: wuxind     时间: 2007-8-28 00:55
今天在学for命令,想找下实例来看看,没想到在这找到一个。lxmln真是历害啊~!
这个不知道算不算是灌水或是别的什么的
作者: hdzc     时间: 2007-10-21 01:24
牛人奇多
作者: singledark     时间: 2007-10-21 04:44
好N哇
作者: hxwxyz     时间: 2007-10-22 19:15
厉害!
作者: regvip2008     时间: 2007-10-25 18:20
lxmxn兄确实厉害!
re:『第 15 楼』:  
win2k系统里没有“wmic”这个命令!
作者: lvbsl     时间: 2007-10-25 20:43
呵呵...
确实牛哈...
作者: ngd     时间: 2007-12-18 23:20
for %i in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do del /s/a/f/q %i\*.info
作者: moniuming     时间: 2007-12-21 17:19
真是牛人,我佩服得全体投地了,努力啊。。。。。。。。。。。。
作者: haiou327     时间: 2008-1-14 17:47
for /r %%a in (c: d: e: f:) do attrib -h %%a *.info