这篇文章主要介绍了windows批量检测文件(夹)是否存在的批处理程序,需要的朋友可以参考下

任务举例

在使用了 批量搜索并复制/剪切文件的批处理程序 中的批处理程序之后,往往还需要和原有的关键字比对,知道搜索到了多少文件。这就需要一个工具,能够批量检测一批关键字是否存在于一堆文件里。比如有如下一些文件:

AA1

BB2

DD3

1

EE2

Abb

希望从中批量搜索文件名包含

AA

BB

CC

的文件

希望得到的结果有:AA1,BB2,1,Abb

有点类似Excel里的vlookup命令,所不同的是用批处理程序可以直接在文件目录下操作,而不需要导出文件名的列表。

实现方法

与批量搜索类似,实现这个任务,仍然需要强大的for命令,并且结合find命令,就能完成这一任务。同时也能检测文件夹是否存在。最后将找到和未找到的关键词分别输出到两个文本文件下。

首先把关键字保存在名叫“list.txt”的文本文件里,每个关键字占一行。注意不能有空格、空行、空回车。例如:

#list.txt 文件内容

AA

BB

CC

然后把下面的代码保存成以*.bat为扩展名的批处理文件:

::Batch search & check
::by lfhacks.com, Apr 1,2009

@echo off
setlocal enabledelayedexpansion
color 1E
echo 本程序检查当前目录下是否存在给定关键字的文件(夹)
echo.
echo by www.lfhacks.com
echo.
echo 例如,检查缺少的文件名
if not exist list.txt (echo.
echo 请先将关键字列表保存为list.txt...
pause > NUL
exit
)
echo.
echo 要检查文件还是目录?
echo.
set /p opt=文件(f) or 目录(d):
if %opt% NEQ f if %opt% NEQ d (
echo 回应错误。
pause >NUL
exit
)
if %opt%==d (
dir /AD /B * >tempp
)
if %opt%==f (
set /p ext=指定文件扩展名(不包括".",不指定请输入*):
dir /A-D /B *.!ext! >tempp
)

if exist result.txt del result.txt 
set count=0
for /f "tokens=*" %%i in (list.txt) do (
find "%%i" tempp >NUL
echo 检查 %%i... 
if !errorlevel! EQU 1 (
echo --- Not Found ---
echo %%i >> Not_found.txt
set /a count+=1
)ELSE (
echo %%i >> Found.txt
)
)
del tempp
echo.
if %count% NEQ 0 echo 任务完成!共有 %count% 个关键字不存在,结果已保存到Not_found.txt
if %count% EQU 0 echo 列表中的关键字都存在
echo 存在的关键字保存到Found.txt

pause >NUL
exit

更多关于Windows效率批处理程序请查看下面的相关链接

    无相关信息
最新资讯
不计代价,抓住那只新消费独角兽

不计代价,抓住那只新消

新消费无疑是今年最受资本宠爱的赛道之一。 以喜茶、
全球半导体厂商销售排名:Intel三星台积电前三

全球半导体厂商销售排

市场研究公司IC Insights日前发布简报,预测2020年排名
消息称原滴滴执行总裁将任抖音火山版负责人 字节跳动:不予置评

消息称原滴滴执行总裁

对于陈熙加入一事,字节跳动方面回应:不予置评。
格力集团:被投企业中超34家正在申报、辅导或筹划上市

格力集团:被投企业中超

截至目前,格力集团被投企业中已有长园科技集团、欧比特
文化和旅游部等十部门:持续深化“互联网+旅游”

文化和旅游部等十部门

文件提出,到2022年,建成一批智慧旅游景区、度假区、村镇
共享经济的今天:从勇敢者的游戏,到潜心者的竞技?

共享经济的今天:从勇敢

从此前的大规模补贴和优惠,到如今行业集体上调价格,变化
最新文章
一键配置jdk环境变量的批处理代码

一键配置jdk环境变量

在重装系统后,可能需要配置计算机的环境变量,在这里以配
CMD命令行管道命令使用介绍

CMD命令行管道命令使

管道符(|)的作用是将符号前的进程输出,当做符号后进程
cmd下获取当前系统时间的bat

cmd下获取当前系统时

编写Windows批处理时经常会需要使用到日期和时间作为
使用批处理脚本在特定目录中启动Git-Bash窗口

使用批处理脚本在特定

这篇文章主要介绍了使用批处理脚本在特定目录中启动Gi
dos之net创建管理员用户的实现

dos之net创建管理员用

这篇文章主要介绍了dos之net创建管理员用户的实现,文中
DOS的重定向命令使用方法以及在安全方面的应用

DOS的重定向命令使用

大家知道,DOS下有一个不为大家所常用的命令——重定向