楼 主
【已解决】如何查找某个文件的路径并调用它
发表于 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
第 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%
第 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%"
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正