中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-04 17:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]关于for和dir命令的一点疑惑 查看 924 回复 8
楼 主 [求助]关于for和dir命令的一点疑惑 发表于 2007-05-27 09:57 ·  中国 湖北 武汉 电信
中级用户
★★
scriptlover
积分 328
发帖 131
注册 2007-03-25 22:17
19年会员
UID 82910
性别 男
状态 离线
@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 ]
scriptlover
Be with script forever!!
2 发表于 2007-05-27 10:07 ·  中国 陕西 渭南 电信
初级用户
★★
积分 186
发帖 92
注册 2007-03-27 08:20
19年会员
UID 83047
性别 男
状态 离线
你搞错了>和>>的用法,只用>的话,会替换掉以前的所有内容,只生成最后一次的文本,按你的想法应该用>>

@echo off
color 1f
for /f "usebackq" %%i in (`dir /a-s /b /s c:\`) do echo %%~dpi>>a.txt
pause
3 发表于 2007-05-27 11:46 ·  中国 北京 利达宽带
中级用户
★★
积分 273
发帖 91
注册 2007-05-07 18:12
19年会员
UID 87770
性别 男
状态 离线
%%~dpi扩展应该是扩展到当前的目录,而不是真实文件所在的目录。
4 发表于 2007-05-28 17:43 ·  中国 湖北 武汉 电信
中级用户
★★
scriptlover
积分 328
发帖 131
注册 2007-03-25 22:17
19年会员
UID 82910
性别 男
状态 离线
只怪本人弄巧成拙,要想得到c:\所有根目录和子目录中具有系统属性的文件的完整路径,一个命令即可搞定,即dir /a-s /b /s c:\|more
scriptlover
Be with script forever!!
5 发表于 2007-05-28 18:16 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
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:\
6 发表于 2007-05-28 18:59 ·  中国 湖北 武汉 电信
中级用户
★★
scriptlover
积分 328
发帖 131
注册 2007-03-25 22:17
19年会员
UID 82910
性别 男
状态 离线
版主,dir好象没有as这个参数......我按照标准的dir命令参数写的,它没错吧??
scriptlover
Be with script forever!!
7 发表于 2007-05-28 19:10 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
/as是/a的其中一种,还可以是/ad,/ar等

/A 显示具有指定属性的文件。
attributes D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 - 表示“否”的前缀
正在潜水修练的批处理小白
8 发表于 2007-05-28 20:12 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
得到c:\所有根目录和子目录中具有系统属性的文件的完整路径


你dir的/a-s参数的作用不符。
9 发表于 2007-05-28 22:02 ·  中国 湖北 武汉 电信
中级用户
★★
scriptlover
积分 328
发帖 131
注册 2007-03-25 22:17
19年会员
UID 82910
性别 男
状态 离线
哦,然来如此
scriptlover
Be with script forever!!
论坛跳转: