中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 20:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【已解决】如何查找某个文件的路径并调用它 查看 1,985 回复 15
楼 主 【已解决】如何查找某个文件的路径并调用它 发表于 2007-03-19 14:43 ·  中国 福建 福州 电信
初级用户
积分 82
发帖 31
注册 2007-03-19 10:38
19年会员
UID 82232
性别 男
状态 离线
请问一下怎么写这个批处理:
就是在一台电脑中用批处理查找某个文件(如:aa.txt)具体的路径都是未知的,然后就是找到后能够调用这个文件所在的路径,(比如aa.txt所在路径是:
D:\TXT\aa.txt,批处理运行完后能使提示符为:D:\TXT>)

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

[ Last edited by namejm on 2007-3-20 at 12:47 PM ]
2 发表于 2007-03-19 14:57 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
使用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
3 发表于 2007-03-19 15:17 ·  中国 福建 福州 电信
初级用户
积分 82
发帖 31
注册 2007-03-19 10:38
19年会员
UID 82232
性别 男
状态 离线
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能当成变量使用!!
再次感谢!!!
4 发表于 2007-03-20 04:09 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
请贴出你的代码,还有你的要求也不是很详细.
比如:这个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
5 发表于 2007-03-20 04:56 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

@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%
6 发表于 2007-03-20 06:17 ·  中国 重庆 沙坪坝区 电信
社区乞丐
积分 -54
发帖 14
注册 2007-01-03 10:04
19年会员
UID 75340
性别 男
来自 重庆大学
状态 离线
有待研究,看不懂啊!
太阳雨
7 发表于 2007-03-20 07:20 ·  中国 广东 梅州 电信
初级用户
积分 46
发帖 18
注册 2006-12-13 02:45
19年会员
UID 73343
性别 男
状态 离线
请问"usebackq delims=/"这部分叫什么
调用文字部分的?
8 发表于 2007-03-20 07:50 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by gdmzzyw at 2007-3-19 18:20:
请问"usebackq delims=/"这部分叫什么
调用文字部分的?


  看看for的帮助吧。for /?
9 发表于 2007-03-20 08:37 ·  中国 福建 福州 电信
初级用户
积分 82
发帖 31
注册 2007-03-19 10:38
19年会员
UID 82232
性别 男
状态 离线
还没有试,先谢谢大家热情的帮助,非常感激!!!!!!
10 发表于 2007-03-20 09:03 ·  中国 福建 福州 电信
初级用户
积分 82
发帖 31
注册 2007-03-19 10:38
19年会员
UID 82232
性别 男
状态 离线
Originally posted by lxmxn at 2007-3-19 03:56 PM:

@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文件是事先不知道具体在硬盘哪个分区的,就是说哪里都有可能。
11 发表于 2007-03-20 09:18 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by hwhan525 at 2007-3-19 20:03:
我用了lxmxn给做的批处理,可是运行后找不到aa.txt文件,我每个分区都拷贝了aa.txt文件,不知道是哪里出问题。
还有就是补充说明一下这个aa. ...


  你是什么系统哇?我测试是可以的,你在cd /d %ppath%前面加个cmd /k 试试。
12 发表于 2007-03-20 09:21 ·  中国 福建 福州 电信
初级用户
积分 82
发帖 31
注册 2007-03-19 10:38
19年会员
UID 82232
性别 男
状态 离线
Originally posted by lxmxn at 2007-3-19 08:18 PM:


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



太谢谢你了!!!!
加了cmd /k这个就可以正常了,我崇拜你嘿嘿!!!!
我是用XP系统的!
13 发表于 2007-03-20 09:25 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by hwhan525 at 2007-3-19 20:21:
太谢谢你了!!!!
加了cmd /k这个就可以正常了,我崇拜你嘿嘿!!!!
我是用XP系统的!


  难怪,我还以为你用的是2000的系统呢。
14 发表于 2007-03-20 09:29 ·  中国 福建 福州 电信
初级用户
积分 82
发帖 31
注册 2007-03-19 10:38
19年会员
UID 82232
性别 男
状态 离线
对了再请问一下怎样才能把这个找到的路径作为一个变量来调用,比如我要把其他文件拷到这个找到的文件夹。麻烦你!!
15 发表于 2007-03-20 09:40 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
  直接在那个批处理后面加上下面这个:

copy <你的文件> "%ppath%"
论坛跳转: