bat实现命令行全盘遍历搜索文件 | 您所在的位置:网站首页 › dos 查找文件名 › bat实现命令行全盘遍历搜索文件 |
目录一、遍历搜索文件或目录的命令二、全盘遍历查找脚本三、配置环境变量命令行使用四、扩展 forfiles 的使用
背景:当想要查找一个文件时,记得放在某个盘里。手动去遍历时感觉好心累,找了半天还是没有找着(虽然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\nul 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. @rem fsutil fsinfo drives 获得各驱动器盘符 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\nul 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 文件所在路径 这样就能在命令行快速的使用命令查找文件或目录所在路径了 最后附上效果图: 四、扩展 forfiles 的使用 删除3天前的所有文件 forfiles /P G:\Test\ /D -3 /C "cmd /c del @file" 删除今天或今天之后的Test目录下的所有数据 forfiles /D +%date:~0,10% /P G:\Test\ /C "cmd /c rd /S/Q G:\Test\" 删除今天之后的文件和目录 forfiles /D +%date:~0,10% /P G:\Test\ /C "cmd /c if @isdir==true (rd /S/Q @path) else (del @file)" |
CopyRight 2018-2019 实验室设备网 版权所有 |