无忧启动论坛

标题: 如果用批处理查找文件 [打印本页]

作者: gdpndw    时间: 2009-12-14 14:16
标题: 如果用批处理查找文件
在所有的分区中查找某个文件,(如QQ。exe),如果查找到了则在该文件的目录下生成一个文件,(这里我会:cpoy >文件名)
请高手在写出方法的同时能讲解一下,自己学习能懂了就不用来麻烦大家了
作者: dos时代菜鸟    时间: 2009-12-14 15:52
代码如下:
@echo off
set fs=qq.exe
if exist fs.txt del fs.txt
echo 搜索 %fs% ....
for %%c in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
   if exist %%c:  for /f "delims=" %%d in ('dir /b /s /a-d  %%c:\%fs%') do (
                echo %%~dpd>>fs.txt
                echo %fs%所在文件夹都要有这个文件> %%~dpd\%fs%_xyz.txt
                )
   )>nul 2>nul

if exist fs.txt ( echo 找到的文件夹: & type fs.txt  
) else ( echo 文件夹未找到!)
echo 按任意键结束! & pause>nul

至于解释:
1、不知道你能看懂多少,总不能让我连为什么1+1=2都将给你听吧。
2、编辑p处理多了,就习惯用p处理的逻辑考虑问题,要翻译成汉语还真不知道从何处入手。

还是你把不明白的地方说出来再说吧。

[ 本帖最后由 dos时代菜鸟 于 2009-12-14 16:04 编辑 ]
作者: gdpndw    时间: 2009-12-14 22:11
呵呵,还是慢慢啃吧,如果啃得下,又学习到一些了。
再问一下,那个生成文件的语句应该插在那里好呢?


那个 set fs=qq.exe 应该是把那个变量=qq.exe

if exist fs.txt del fs.txt
下一句前面好理解,应该是判断文件是不是存在的 “fs.txt del fs.txt”这个就不知道了

[ 本帖最后由 gdpndw 于 2009-12-14 22:19 编辑 ]
作者: dos时代菜鸟    时间: 2009-12-15 08:52
if exist fs.txt del fs.txt 应该分割成
if exist fs.txt    和    del fs.txt
前部分表示判断fs.txt是否存在 后面表示如果判断为真 就删除之

至于生成文件
echo %fs%所在文件夹都要有这个文件> %%~dpd\%fs%_xyz.txt
表示用echo 发送一句话生成 一个文件。

这个xp下的批处理通过 for 完成两个循环嵌套。

对于p处理初学者,我的建议是 从最基本的命令 记起 一个命令一个命令的学,而且要从简单到复杂循序渐进。
比如:dir /? 找出dir命令的全部参数,然后逐个尝试。
冒然学习成批的语句,应该不容易达到效果,只能是对某一个命令一知半解。

[ 本帖最后由 dos时代菜鸟 于 2009-12-15 09:04 编辑 ]




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3