[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何查找某个文件夹下的指定文件

本帖最后由 pcl_test 于 2016-8-3 11:54 编辑
  1. @echo off
  2. for /r %%i in (a.txt) do echo %%i是你要查找的文件吗
  3. pause>nul
复制代码
代码如上,我的初衷很简单,就是在当前目录及子目录下查找所有的a.txt文件并显示。
但是,结果并不能如我所愿,即使当前目录及子目录中没有这个a.txt,它也一通狂显:
……是你要查找的文件吗?

这是怎么回事儿?它显示有什么原则吗?
而我在查询的文件名上加个*,问题便解决了,可是这并不是我想要的啊,我就要查找a.txt,*a.txt的结果肯定比a.txt要多啊。
[attach]1697[/attach]

如上的问题为什么会存在呢?
这个 准确的文件名为什么会出来那么多不准确的结果?
难道是 for /r 的搜索规则就是那样?

TOP

原帖由 Lumiere 于 2009-8-1 15:35 发表
你会那样写代码是因为你对for还没有理解。打开cmd输入for /?查看里面有一句话,这样写的:.........
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

    检查以 [drive:]path 为根的 ...

非常感谢这位兄弟如此细致、耐心的解释。您的回答对我理解这个问题有很大帮助。
就现在看来,我要是找当前目录和子目录中的 a.txt 的话,只能在do中用个if语句了吗?
通过修改in()看来是达不到效果了吧?

[ 本帖最后由 0428_hai 于 2009-8-1 23:02 编辑 ]

TOP

返回列表