例如:
   批处理命令
   搜索文件:QQ.exe
   搜索盘符:C,D,E
   现实效果:实时显示搜索路径结果,逐条显示出来。搜索完毕统计出一共搜索出多少个QQ.exe文件(真实存在的文件)。
   我的代码:
   @echo off
color 0a
title 正在努力搜索中...
echo. 
setlocal ENABLEDELAYEDEXPANSION
echo 关 键 字:QQ
echo.
echo 搜索范围:(C,D,E)盘
echo.
echo 搜索路径:
for /r c:\ %%i in (QQ.exe) do (
if exist %%i echo %%i
set /a num+=1
)
echo.
echo 搜索完毕.............................
echo.
title 搜索完毕.....
echo.
echo 共搜索到: %num% 个文件。
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
pause能逐条显示搜索到的真实存在的路径,但是统计出来的结果不是真实存在的。临时文件都给计算进去了。后面的批处理不好做判断。再一个,我想同时搜索多个盘,同时逐步显示搜索真实存在的路径(C,D,E逐个搜索显示),做最终统计搜索结果。请高人指路!

解决方案 »

  1.   

    system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
    //读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
    system("dir /b /a-d /s c:\\*.* >d:\\allfilesinsub.txt");
    //读文件d:\\allfilesinsub.txt的内容即C:\\下所有文件的名字包含子目录
    system("dir /b /ad  c:\\*.* >d:\\alldirs.txt");
    //读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
    请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。