中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 18:27
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]关于for和dir命令的一点疑惑
可打印版本  926 / 8
第1楼 stornager 发表于 2007-05-27 09:57
中级用户 发帖 131 积分 328
[求助]关于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 ]
第2楼 lp1129 发表于 2007-05-27 10:07
初级用户 发帖 92 积分 186
你搞错了>和>>的用法,只用>的话,会替换掉以前的所有内容,只生成最后一次的文本,按你的想法应该用>>

@echo off
color 1f
for /f "usebackq" %%i in (`dir /a-s /b /s c:\`) do echo %%~dpi>>a.txt
pause
第3楼 sonicandy 发表于 2007-05-27 11:46
中级用户 发帖 91 积分 273
%%~dpi扩展应该是扩展到当前的目录,而不是真实文件所在的目录。
第4楼 stornager 发表于 2007-05-28 17:43
中级用户 发帖 131 积分 328
只怪本人弄巧成拙,要想得到c:\所有根目录和子目录中具有系统属性的文件的完整路径,一个命令即可搞定,即dir /a-s /b /s c:\|more
第5楼 lxmxn 发表于 2007-05-28 18:16
版主 发帖 4,938 积分 11,386
Originally posted by stornager at 2007-5-28 17:43:
只怪本人弄巧成拙,要想得到c:\所有根目录和子目录中具有系统属性的文件的完整路径,一个命令即可搞定,即dir /a-s /b /s c:\|more

貌似这个错了. dir /as
第6楼 stornager 发表于 2007-05-28 18:59
中级用户 发帖 131 积分 328
版主,dir好象没有as这个参数......我按照标准的dir命令参数写的,它没错吧??
第7楼 dikex 发表于 2007-05-28 19:10
高级用户 发帖 366 积分 788
/as是/a的其中一种,还可以是/ad,/ar等

/A 显示具有指定属性的文件。
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
第8楼 lxmxn 发表于 2007-05-28 20:12
版主 发帖 4,938 积分 11,386
得到c:\所有根目录和子目录中具有系统属性的文件的完整路径


你dir的/a-s参数的作用不符。
第9楼 stornager 发表于 2007-05-28 22:02
中级用户 发帖 131 积分 328
哦,然来如此
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023