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

[文件管理] 批处理全盘查找文件

本人刚学批处理,写的不好,还请前辈们指教。用的都是基本命令,没什么花头。别见效啊。
  1. @echo off
  2. title 全盘查找文件 by fmr520
  3. color 89
  4. :cd
  5. cls
  6. echo.
  7. echo.
  8. set /p "p=按回车"
  9. cls
  10. echo.
  11. echo.
  12. echo 请输入要找的文件名和后缀如;abc.txt
  13. echo.
  14. echo.
  15. set /p p=请输入:
  16. del dir.txt /a/s/q>nul
  17. for /f "delims=" %%i in ('dir/a/b/s c:\;d:\;e:\ ^|findstr /c:"%p%" ') do (set
  18. sum+=1
  19. if "%%a" gtr 1 goto dir
  20. cls
  21. if "%%~nxi" equ %p% cd/d"%%~dpi"
  22. call "%%~nxi"&&goto cd
  23. :dir
  24. echo "%%i">>dir.txt
  25. )
  26. echo.
  27. echo.
  28. echo 文件名重复,无法一次打开多个文件,请查看dir.txt文件
  29. echo.&echo.
  30. pause
  31. goto cd
复制代码

要是不只三个分区呢,是不是要加个分区自动获取呀?

TOP

这个我还不会自动获取分区,麻烦版主指点一下
@set,=学无止境
@for /l %%b in (0,1,6) do @call set/p= %%,:~%%b,1%%<nul

TOP

呵呵...慢慢来.
试下这条命令:
  1. fsutil fsinfo drives
复制代码

TOP

修改了 一下代码
  1. @echo off
  2. title 全盘查找文件 by fmr520
  3. color 89
  4. setlocal enabledelayedexpansion
  5. echo.
  6. echo.
  7. echo 请输入要找的文件名和后缀如;abc.txt
  8. echo.
  9. echo.
  10. set /p p=请输入:
  11. for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
  12.     set var=%%i
  13.     set drive=!var:~-2!
  14.     fsutil fsinfo drivetype !drive!|find "固定">nul && (
  15.         for /f "tokens=*" %%j in ('dir /a-d /b /s !drive!\%p% 2^>nul') do (set sum+=1
  16. if "%%j" gtr 1 goto dir
  17. cls
  18. if "%%~nxj" equ %p% cd/d"%%~dpj"
  19. call "%%~nxj"&&goto cd
  20. :dir
  21. echo "%%j">>dir.txt
  22. )
  23.     )   
  24. )
  25. exit
复制代码
@set,=学无止境
@for /l %%b in (0,1,6) do @call set/p= %%,:~%%b,1%%<nul

TOP

千万不要输入模糊的,如*.jpg *.exe
这样的话会把找到的所有文件都全部打开。
如要模糊查找,我在给个模糊查找的代码
@echo off
title 全盘查找文件 by fmr520
color 89
setlocal enabledelayedexpansion
echo.
echo.
echo 请输入要找的后缀如;*.txt
echo.
echo.
set /p p=请输入:
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
    set var=%%i
    set drive=!var:~-2!
    fsutil fsinfo drivetype !drive!|find "固定">nul && (
        for /f "tokens=*" %%j in ('dir /a-d /b /s !drive!\%p% 2^>nul') do echo "%%j">>dir.txt

    )   
)
start dir.txt
exit
1

评分人数

@set,=学无止境
@for /l %%b in (0,1,6) do @call set/p= %%,:~%%b,1%%<nul

TOP

@echo off
set /p chenlun=输入要搜索的文件名:
echo 正在搜索中请稍等......
for %%a in (c d e f h) do for /f "tokens=*" %%b in ('dir /s/b/a-d %%a:\%chenlun%') do (echo %%b & start "" "%%b")
pause

我感觉这样好像更简单点吧

TOP

回复 7楼 的帖子

批处理bat代码是越短越好吗?
http://bbs.bathome.net/viewthread.php?tid=4026
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

俺是新人。
问一下,要查找QQ.exe,如果装的是双系统,两个系统中都装有QQ,都有QQ.exe文件,如何能把两个QQ都显示出来啊?这段代码,只能显示第一个查找到的。

TOP

返回列表