Board logo

标题: [求助]关于for和dir命令的一点疑惑 [打印本页]

作者: stornager     时间: 2007-5-27 09:57    标题: [求助]关于for和dir命令的一点疑惑

@echo off
color 1f
for /f "usebackq" %%i in (`dir /a-s /b /s c:\`) do echo %%~dpi>a.txt
pause

我想使上面的代码运行得到c:\所有根目录和子目录中具有系统属性的文件的完整路径,将其保存在a.txt中,然而输出的结果是C:\Documents and Settings\Administrator\桌面\
我在论坛上搜索了很多关于for和dir应用方面的帖子,对其原理有了一定了解,
但是关于上面的输出结果我实在想不通,请高手指点!!

[ Last edited by stornager on 2007-5-27 at 08:46 PM ]
作者: lp1129     时间: 2007-5-27 10:07
你搞错了>和>>的用法,只用>的话,会替换掉以前的所有内容,只生成最后一次的文本,按你的想法应该用>>

@echo off
color 1f
for /f "usebackq" %%i in (`dir /a-s /b /s c:\`) do echo %%~dpi>>a.txt
pause
作者: sonicandy     时间: 2007-5-27 11:46
%%~dpi扩展应该是扩展到当前的目录,而不是真实文件所在的目录。
作者: stornager     时间: 2007-5-28 17:43
只怪本人弄巧成拙,要想得到c:\所有根目录和子目录中具有系统属性的文件的完整路径,一个命令即可搞定,即dir /a-s /b /s c:\|more
作者: lxmxn     时间: 2007-5-28 18:16


  Quote:
Originally posted by stornager at 2007-5-28 17:43:
只怪本人弄巧成拙,要想得到c:\所有根目录和子目录中具有系统属性的文件的完整路径,一个命令即可搞定,即dir /a-s /b /s c:\|more

貌似这个错了. dir /as
dir /s/b/as/p c:\

作者: stornager     时间: 2007-5-28 18:59
版主,dir好象没有as这个参数......我按照标准的dir命令参数写的,它没错吧??
作者: dikex     时间: 2007-5-28 19:10
/as是/a的其中一种,还可以是/ad,/ar等

/A          显示具有指定属性的文件。
attributes   D  目录                R  只读文件
             H  隐藏文件            A  准备存档的文件
             S  系统文件            -  表示“否”的前缀
作者: lxmxn     时间: 2007-5-28 20:12


  Quote:
得到c:\所有根目录和子目录中具有系统属性的文件的完整路径


你dir的/a-s参数的作用不符。
作者: stornager     时间: 2007-5-28 22:02
哦,然来如此