中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]查找指定文件夹下的文件
作者:
标题: [求助]查找指定文件夹下的文件 上一主题 | 下一主题
coldface
初级用户





积分 71
发帖 70
注册 2010-7-19
状态 离线
『楼 主』:  [求助]查找指定文件夹下的文件

需求:
查找指定文件夹下的文件,(不查找此文件夹下的子目录),读取文件并把文件内容写到另个文件。
比如要查找磁盘所有HA文件夹下的WS.txt文件,并把ws.txt的文件内容输出到R.txt中。

如下写的只能搜索到WS.txt以及其路径,但是并不能只显示HA文件夹下的,并且不能实现把ws.txt内容copy到r.txt中
@echo off
for %%i in (c:,d:,e:,f:) do  dir /s /b %%i\WS.txt >>filepath.txt 2>nul
for /f %%a in ( filepath.txt) do start %%a

麻烦给个帮助。

[ Last edited by coldface on 2010-9-13 at 10:24 ]

2010-9-10 23:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
coldface
初级用户





积分 71
发帖 70
注册 2010-7-19
状态 离线
『第 2 楼』:  

怎么把filepath.txt里保存的路径中的文件写入到另一个文件?

2010-9-11 17:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
coldface
初级用户





积分 71
发帖 70
注册 2010-7-19
状态 离线
『第 3 楼』:  

哦 想出来了

@echo off
for %%i in (c:,d:,e:,f:) do  dir /s /b %%i\ws.txt >>filepath.txt 2>nul
for /f %%a in ( filepath.txt) do (
for /f "usebackq" %%j in (`type %%~sa`) do echo %%j >R.txt
)

2010-9-11 17:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
coldface
初级用户





积分 71
发帖 70
注册 2010-7-19
状态 离线
『第 4 楼』:  

我上面写的有问题,如果ws.txt在如下目录存在:
d:\Program Files\xj1\hal_XJQ\ddzv\Data\Btn\video\ws.txt
d:\Program Files\xj1\hal_XJQ\LuckyDDZ\Data\Ani\ws.txt
d:\Program Files\xj1\hal_XJQ\LuckyDDZ\Data\Other\ws.txt
d:\Program Files\xj11\hal_XJQ\ws.txt
d:\Program Files\xj16XJ\halQQ\ws.txt
那么我如果只想读取d:\Program Files\xj11\hal_XJQ这个根目录下的ws.txt,不读取其子目录下的ws.txt,该如何处理?
另外写入到wj.txt文件那步也有问题 不应该是%~sa,因为未包饭对应的目录项,也不明白怎么写入了/

[ Last edited by coldface on 2010-9-13 at 10:31 ]

2010-9-13 10:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
coldface
初级用户





积分 71
发帖 70
注册 2010-7-19
状态 离线
『第 5 楼』:  

帮助下,谢谢

2010-9-13 15:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
coldface
初级用户





积分 71
发帖 70
注册 2010-7-19
状态 离线
『第 6 楼』:  

顶下!

2010-9-14 10:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DXSX
中级用户





积分 247
发帖 147
注册 2009-4-9
状态 离线
『第 7 楼』:  


@echo off & setlocal ENABLEDELAYEDEXPANSION
for %%c in (c: d: e: f:) do (
if exist "%%c\Program Files\xj11\hal_XJQ\ws.txt"  type "%%c\Program Files\xj11\hal_XJQ\ws.txt"  >>r.txt
)
另外发现你的 “根目录” 概念不清,学习一下 dos 根目录的概念。

按照你的思路修改:
@echo off
for %%i in (c:,d:,e:,f:) do  dir /s /b %%i\ws.txt >>filepath.txt 2>nul
for /f %%a in ( filepath.txt) do (
if   /I "%%~pa" EQU "\Program Files\xj11\hal_XJQ\" TYPE "%%a" >>R.txt
)

[ Last edited by DXSX on 2010-9-14 at 11:48 ]

2010-9-14 11:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
coldface
初级用户





积分 71
发帖 70
注册 2010-7-19
状态 离线
『第 8 楼』:  

好的 感谢指教。
您给的程序例子好像不能往R.txt里写

2010-9-14 22:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: