Board logo

标题: 【已解决】如何查找某个文件的路径并调用它 [打印本页]

作者: hwhan525     时间: 2007-3-19 14:43    标题: 【已解决】如何查找某个文件的路径并调用它

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

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

[ Last edited by namejm on 2007-3-20 at 12:47 PM ]
作者: chenall     时间: 2007-3-19 14:57
使用FOR配合DIR查找文件来实现.
在批处理中使用请将%i换成%%i
for /f "usebackq delims=/" %i in (`dir /s/a-d/b aa.txt`) do cd /d %~dpi

作者: hwhan525     时间: 2007-3-19 15:17


  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能当成变量使用!!
再次感谢!!!
作者: chenall     时间: 2007-3-20 04:09
请贴出你的代码,还有你的要求也不是很详细.
比如:这个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%

作者: lxmxn     时间: 2007-3-20 04:56

@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%

作者: wxjlotus     时间: 2007-3-20 06:17
有待研究,看不懂啊!
作者: gdmzzyw     时间: 2007-3-20 07:20
请问"usebackq delims=/"这部分叫什么
调用文字部分的?
作者: lxmxn     时间: 2007-3-20 07:50


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


  看看for的帮助吧。for /?

作者: hwhan525     时间: 2007-3-20 08:37
还没有试,先谢谢大家热情的帮助,非常感激!!!!!!
作者: hwhan525     时间: 2007-3-20 09:03


  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文件是事先不知道具体在硬盘哪个分区的,就是说哪里都有可能。
作者: lxmxn     时间: 2007-3-20 09:18


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


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

作者: hwhan525     时间: 2007-3-20 09:21


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


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

太谢谢你了!!!!
加了cmd /k这个就可以正常了,我崇拜你嘿嘿!!!!
我是用XP系统的!
作者: lxmxn     时间: 2007-3-20 09:25


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


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

作者: hwhan525     时间: 2007-3-20 09:29
对了再请问一下怎样才能把这个找到的路径作为一个变量来调用,比如我要把其他文件拷到这个找到的文件夹。麻烦你!!
作者: lxmxn     时间: 2007-3-20 09:40
  直接在那个批处理后面加上下面这个:
copy <你的文件> "%ppath%"

作者: hwhan525     时间: 2007-3-20 10:00
OK!!成功了,都不知到说什么好了,感激中!!!