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

[文本处理] [已解决]批处理命令findstr怎样查找包含空格的关键词?

本帖最后由 wh1234567 于 2012-6-16 14:45 编辑
  1. @echo off
  2. findstr /i "关键词1 关键词2 关键词3" a.txt>结果.txt
  3. exit
复制代码
这是匹配任意一个关键词的行输出的代码,我发现如果某个关键词里包含空格的话就会处理不准确,能不能将设定的关键词固定住,然后将多个关键词用逗号隔开,
例如:
关键词:北京 小学,成绩比赛,002  四中
北京 小学  这里关键词里包含空格,
234234不急不缓进口环节北京 小学2342法国德国
将红字的固定住,符合这个关键词才输出,上面的代码忽略了空格导致不能准确处理,最好是将这些特殊符号包括空格不能忽略,只以逗号分隔为准
也就是北京 小学这个是一个整体的关键词,不得分开处理
并且输出的行不得重复
1

评分人数

    • zqz0012005: 感谢给帖子标题标注[已解决]字样PB + 2

  1. findstr /c:"北京 小学" /c:"成绩比赛" /c:"002  四中" 蛋疼.txt
复制代码

TOP

回复 2# forfiles

你好,能不能弄成
set wenben=数据.txt
set guanjianci=
下面是命令...

然后输出到另外1个文本里

TOP

本帖最后由 apang 于 2012-6-15 13:21 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set "wenben=数据.txt"
  3. set guanjianci="北京 小学" "002  四中"
  4. set "蛋疼=!guanjianci:" "=、!"&set "蛋疼=!蛋疼:"=!"
  5. for %%a in (!guanjianci!) do set "str=!str! /c:%%a"
  6. findstr /i!str! !wenben!>"%~dp0!蛋疼!.txt"
复制代码
1

评分人数

TOP

本帖最后由 wh1234567 于 2012-6-15 12:44 编辑

回复 4# apang
嗯,很好,
findstr /i!str! !wenben!>蛋疼.txt
我想修改成输出文件名为关键词,并将关键词用顿号“、”隔开(如果是多个关键词的话用顿号“、”隔开,如果是一个关键词的话就直接用关键词命名为输出文件名,就不带“、”)
@echo off&setlocal enabledelayedexpansion
set "wenben=数据.txt"
set guanjianci="北京 小学"、"成绩比赛"、"002  四中"
for %%a in (!guanjianci!) do set "str=!str! /c:%%a"
findstr /i!str! !wenben!>!guanjianci!.txt
好像不能处理了

TOP

回复 5# wh1234567

好吧,4楼再试一次。

TOP

返回列表