zoukankan      html  css  js  c++  java
  • 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.
            
            @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
    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 文件所在路径

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

    最后附上效果图:

    四、扩展 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)"
    
  • 相关阅读:
    FastJson---高性能JSON开发包
    mybatis中大于等于小于等于的写法
    MarkDown 使用说明示例
    Get和Post的参数传值
    规则引擎 资料收集
    ORA-01033错误解决方案
    mybatis 参数为String,用_parameter 取值
    php中实现记住密码下次自动登录的例子
    php 应用 bootstrap-fileinput 上传文件 插件 操作的方法
    AJAX 跨域请求
  • 原文地址:https://www.cnblogs.com/zeo-to-one/p/9302701.html
Copyright © 2011-2022 走看看