中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【已解决】如何查找某个文件的路径并调用它
« [1] [2] »
作者:
标题: 【已解决】如何查找某个文件的路径并调用它 上一主题 | 下一主题
hwhan525
初级用户





积分 82
发帖 31
注册 2007-3-19
状态 离线
『楼 主』:  【已解决】如何查找某个文件的路径并调用它

请问一下怎么写这个批处理:
就是在一台电脑中用批处理查找某个文件(如:aa.txt)具体的路径都是未知的,然后就是找到后能够调用这个文件所在的路径,(比如aa.txt所在路径是:
D:\TXT\aa.txt,批处理运行完后能使提示符为:D:\TXT>)

我是批处理的菜鸟!希望高手帮我写写这个批处理!!万分感谢!!!

[ Last edited by namejm on 2007-3-20 at 12:47 PM ]

2007-3-19 14:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 2 楼』:  

使用FOR配合DIR查找文件来实现.
在批处理中使用请将%i换成%%i
for /f "usebackq delims=/" %i in (`dir /s/a-d/b aa.txt`) do cd /d %~dpi




QQ:366840202
http://chenall.net
2007-3-19 14:57
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
hwhan525
初级用户





积分 82
发帖 31
注册 2007-3-19
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by chenall at 2007-3-19 01:57 AM:
使用FOR配合DIR查找文件来实现.
在批处理中使用请将%i换成%%i
for /f "usebackq delims=/" %i in (`dir /s/a-d/b aa.txt`) do cd /d %~dpi

谢谢chenall这么快就回复了,可是我运行了查找不到呢,我真的很笨能不能帮我写的详细些呢,最好最后这个路径D:\TXT能当成变量使用!!
再次感谢!!!

2007-3-19 15:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 4 楼』:  

请贴出你的代码,还有你的要求也不是很详细.
比如:这个AA.TXT有没有固定在哪一个盘中呢?还是有可能在所有的磁盘中存在?

再贴一个你参考一下吧.注,这个批处理只查找D:中的文件.aa_dir是找到后的路径.
for /f "usebackq delims=/" %%i in (`dir /s/a-d/b d:\aa.txt`) do set aa_dir=%%~dpi
cd /d %aa_dir%




QQ:366840202
http://chenall.net
2007-3-20 04:09
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  


@echo off
for /f "skip=1" %%a in ('wmic logicaldisk where "DriveType=3" get caption') do (
        for /f "delims=" %%_ in ('dir /s/b/a-d %%a\aa.txt 2^>nul') do (if exist "%%_" set ppath=%%~dp_&goto :end)
)
:end
cd /d %ppath%


2007-3-20 04:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxjlotus
社区乞丐





积分 -54
发帖 14
注册 2007-1-3
来自 重庆大学
状态 离线
『第 6 楼』:  

有待研究,看不懂啊!



太阳雨
2007-3-20 06:17
查看资料  发送邮件  发短消息 网志  OICQ (270344749)  编辑帖子  回复  引用回复
gdmzzyw
初级用户





积分 46
发帖 18
注册 2006-12-13
状态 离线
『第 7 楼』:  

请问"usebackq delims=/"这部分叫什么
调用文字部分的?

2007-3-20 07:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by gdmzzyw at 2007-3-19 18:20:
请问"usebackq delims=/"这部分叫什么
调用文字部分的?


  看看for的帮助吧。for /?


2007-3-20 07:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hwhan525
初级用户





积分 82
发帖 31
注册 2007-3-19
状态 离线
『第 9 楼』:  

还没有试,先谢谢大家热情的帮助,非常感激!!!!!!

2007-3-20 08:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hwhan525
初级用户





积分 82
发帖 31
注册 2007-3-19
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by lxmxn at 2007-3-19 03:56 PM:
[code]
@echo off
for /f "skip=1" %%a in ('wmic logicaldisk where "DriveType=3" get caption') do (
        for /f "delims=" %%_ in ('dir /s/b/a-d %%a\aa.t ...

我用了lxmxn给做的批处理,可是运行后找不到aa.txt文件,我每个分区都拷贝了aa.txt文件,不知道是哪里出问题。

还有就是补充说明一下这个aa.txt文件是事先不知道具体在硬盘哪个分区的,就是说哪里都有可能。

2007-3-20 09:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by hwhan525 at 2007-3-19 20:03:
我用了lxmxn给做的批处理,可是运行后找不到aa.txt文件,我每个分区都拷贝了aa.txt文件,不知道是哪里出问题。
还有就是补充说明一下这个aa. ...


  你是什么系统哇?我测试是可以的,你在cd /d %ppath%前面加个cmd /k 试试。


2007-3-20 09:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hwhan525
初级用户





积分 82
发帖 31
注册 2007-3-19
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by lxmxn at 2007-3-19 08:18 PM:


  你是什么系统哇?我测试是可以的,你在cd /d %ppath%前面加个cmd /k 试试。

太谢谢你了!!!!
加了cmd /k这个就可以正常了,我崇拜你嘿嘿!!!!
我是用XP系统的!

2007-3-20 09:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by hwhan525 at 2007-3-19 20:21:
太谢谢你了!!!!
加了cmd /k这个就可以正常了,我崇拜你嘿嘿!!!!
我是用XP系统的!


  难怪,我还以为你用的是2000的系统呢。


2007-3-20 09:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hwhan525
初级用户





积分 82
发帖 31
注册 2007-3-19
状态 离线
『第 14 楼』:  

对了再请问一下怎样才能把这个找到的路径作为一个变量来调用,比如我要把其他文件拷到这个找到的文件夹。麻烦你!!

2007-3-20 09:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 15 楼』:  

  直接在那个批处理后面加上下面这个:
copy <你的文件> "%ppath%"


2007-3-20 09:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: