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

[文件操作] 【已解决】批处理设置关键字与修改日期来搜索文件的方法,请指教!

本帖最后由 toyerspollors 于 2022-2-21 16:34 编辑

比如我要在D盘中搜索关键字为“批处理”,后缀为txt,文件修改日期为 2022/01/28 的文件,

搜索出来后移动到D:\123\路径下,另外生成一份文件的原路径清单。

不知道要如何编写这类复杂的命令?请老师指教!!

以上的操作不专业,能达到下方效果会好一些!!

不知道能不能把关键词文件名,以及修改时间编辑在txt文本中,让bat去识别啊。文本内容如下:

斗破穹苍第一章.txt         2020/01/18
三国演义人物简介.txt       2021/03/05
红楼梦经典段子.pdf         2021/11/23

@echo off &setlocal enabledelayedexpansion
(for /f "tokens=*" %%i in ('dir /s /od /a-d *批处理*.txt ^| find "2022/01/28"') do echo %%i)>D:\123\目录清单.txt
pause

试一试!!
Fit Strong

TOP

@echo off &setlocal enabledelayedexpansion
set /a cout=0
(for /f "tokens=*" %%i in ('dir /s /a-d /b *批处理*.txt') do (
        dir /a-d /od "%%i" | find "2022/01/28"  1>nul 2>nul
        if !errorlevel! equ 0 (
                set /a cout+=1
                echo,【!cout!】%%i
        )
))>D:\123\目录清单.txt

pause&exit


有点慢,再试试!
1

评分人数

Fit Strong

TOP

@echo off &setlocal enabledelayedexpansion
set /a cout=0
(for /f "tokens=*" %%i in ('dir /s /a-d / ...
Fit 发表于 2022-2-14 19:30


老师的命令是可以生成相关文件的清单,但是少了“搜索出来后移动到D:\123\路径下”这步操作,盼帮修改一下,谢谢!

TOP

@echo off &setlocal enabledelayedexpansion
set /a cout=0
(for /f "tokens=*" %%i in ('dir /s /a-d /b *批处理*.txt') do (
        dir /a-d /od "%%i" | find "2022/01/28"  1>nul 2>nul
        if !errorlevel! equ 0 (
                set /a cout+=1
                echo,【!cout!】%%i
                move "%%i" "D:\123\"  >nul
        )
))>D:\123\目录清单.txt

pause&exit
1

评分人数

Fit Strong

TOP

可以正常使用!!!

不过感觉效率有点低,搜索多个不同文件名设置起来有些费时。

不知道能不能把关键词文件名,以及修改时间编辑在txt文本中,让bat去识别啊。文本内容如下:

斗破穹苍第一章.txt         2020/01/18
三国演义人物简介.txt       2021/03/05
红楼梦经典段子.pdf         2021/11/23

TOP

@echo off &setlocal enabledelayedexpansion
set /a cout=0
rem 下面变量是你的txt文件名
set txt=关键.txt
(for  /f  "tokens=1,2,3 delims=. " %%a in (%txt%) do (
  for /f "tokens=*" %%i in ('dir /s /a-d /b "*%%a*.%%b"') do (
        dir /a-d /od "%%i" | find "%%c"  1>nul 2>nul
        if !errorlevel! equ 0 (
                set /a cout+=1
                echo,【!cout!】%%i
                move "%%i" "D:\123\"  >nul
        )
  )
  echo,--------------------------------------------------------
))>D:\123\目录清单.txt

pause&exit


试试,关键.txt,你可以换成你的名称,要在同目录下
1

评分人数

Fit Strong

TOP

谢谢老师帮助!

TOP

返回列表