找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22065|回复: 3

[文件操作] 批处理命令for和findstr如何对文件进行高级筛选?

[复制链接]
发表于 2012-4-4 00:45:46 | 显示全部楼层 |阅读模式
因为不同的文件有不同的用处,所以我在文件名里加入特定的关键字加以区别。比如:
[A]xxx
[B]xxx
[A][B]xxx
[A][C]xxx
[B][D]xxx
[A][B][C]xxx
[A][B][D]xxx
[A][B][C][D]xxx

在某一次筛选时,我需要把[A][B]挑出来,但不需要包含[C]和[D]的,我的思路是这样的:


for /f "delims=" %%i in ('dir /s /b "目录\*[A]*.apk" ^| findstr "[B]"') do (

检查软件名是否包含[C],是,则跳过这个文件,否则继续下面语句
检查软件名是否包含[D],是,则跳过这个文件,否则继续下面语句


对符合筛选条件的文件进行一系列批处理(这部分我写好了)

)

在for语句里,既不能用goto,也不能用call,那我该怎么跳过不想要的文件呢?
发表于 2012-4-4 01:09:02 | 显示全部楼层
  1. dir /b *[A]*[B]*.apk | findstr /v "[C] [D]"
复制代码
发表于 2012-4-4 01:19:40 | 显示全部楼层
回复 2# find

这样貌似严谨一点:
  1. dir /b *[A]*[B]*.apk *[B]*[A]*.apk | findstr /v /l "[C] [D]"
复制代码
 楼主| 发表于 2012-4-4 21:18:22 | 显示全部楼层
谢谢楼上两位,都怪自己看帮助不仔细,原来findstr 命令本身带了排除功能的。

本帖内容已经得到解决!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 21:12 , Processed in 0.017946 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表