bat命令行实现全盘遍历搜索文件

Posted zeo-to-one

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat命令行实现全盘遍历搜索文件相关的知识,希望对你有一定的参考价值。

背景:当想要查找一个文件时,记得放在某个盘里。手动去遍历时感觉好心累,找了半天还是没有找着(虽然win有自带的搜索框,但是看着进度条的速度,我便果断的点了取消)。基于这个情况,所以写了脚本满足自身查找文件的需求。

一、遍历搜索文件或目录的命令

先来了解一下win自带的遍历搜索命令,这两个命令都可以进行模糊匹配。例如:==sea*.bat==

  • dir /S search.bat ? 遍历当前目录查找search.bat 文件
  • forfiles /S /M search.bat ? 遍历当前目录查找search.bat文件

以上两个命令各有优势,都是指定盘符查找,视情况使用。

二、全盘遍历查找脚本

这里全盘遍历便是根据上述命令进行循环查找

@echo off& setlocal enabledelayedexpansion
rem +++++++++++++++++++++++++++++++++++++++++++
rem   search.bat
rem          By zhzw @2018/7/4
rem
rem            Version: 1.0
rem +++++++++++++++++++++++++++++++++++++++++++
set stime=%time:~0,2%%time:~3,2%%time:~6,2%
if "%stime:~0,1%"==" " set "stime=0%stime:~1%"

if "%1" equ "" (
    echo 命令语法不正确。使用/?查看帮助
    goto exit
)
if "%1" equ "/?" (
    echo 全盘搜索文件/文件夹或者遍历目录。
    echo.
    echo SEARCH ^[file^]^[folder^]^[path^] ^[/V^]
    echo.
    echo   ^[file^]^[folder^]^[path^]
    echo    指定要列出的文件、文件夹或目录列表。
    echo.
    echo   ^[/V^]
    echo    查找相关字符串
    goto exit
)
if /i "%1" equ "/v" (
    echo 模糊查找
    set pwd=%cd%
    echo  start searching .....
    echo.

    for %%i in (C: D: E: F: G: H: I: J: K:) do (
        if exist %%i (
            echo ■■■■ Searching for the %%i disk
            rem if exist %%i
ul
            rem cd /d %%i & dir /S/b "%1" 2>nul
            cd /d %%i & dir /S/b |findstr "%2$" & echo.
        )
    )
    cd /d !pwd!
    echo. &echo. &echo.
) else (
    set pwd=%cd%
    echo  start searching .....
    echo.

    for %%i in (C: D: E: F: G: H: I: J: K:) do (
        if exist %%i (
            echo ■■■■ Searching for the %%i disk
            rem if exist %%i
ul
            rem cd /d %%i & dir /S/b "%1" 2>nul
            cd /d %%i & dir /S/b "%1" & echo.
        )
    )
    cd /d !pwd!
    echo. &echo. &echo.
)

set etime=%time:~0,2%%time:~3,2%%time:~6,2%
if "%etime:~0,1%"==" " set "etime=0%etime:~1%"
echo 开始时间:%stime%
echo 结束时间:%etime%
:exit

三、配置环境变量命令行使用

我的电脑 -->右键 --> 属性 --> 环境变量 --> 系统变量 --> Path --> 输入search.bat 文件所在路径

这样就能在命令行快速的使用命令查找文件或目录所在路径了

最后附上效果图:
技术分享图片

以上是关于bat命令行实现全盘遍历搜索文件的主要内容,如果未能解决你的问题,请参考以下文章

bat文件编写求助!!

用一个.bat文件批处理压缩文件,将文件夹下的压缩文件遍历,解压缩到当前文件夹,如何写?

bat先查找文件夹再查找文件夹内的文件并打开

bat搜索文件并将结果写入txt

模拟windows全盘搜索

bat文件里的换行命令