Board logo

标题: [文本处理] BAT查找字符串找不到时怎么输出找不到? [打印本页]

作者: jpu    时间: 2013-9-5 13:17     标题: BAT查找字符串找不到时怎么输出找不到?

  1. findstr /i "张芳 施洁 徐德俊 赵淑 石静 徐霞" employee.txt >a.txt
  2. if errorlevel==1
  3. echo 找不到
复制代码
我想输出找不到人的名字,怎么写?
作者: terse    时间: 2013-9-5 13:43

  1. @echo off
  2. set str=张芳 施洁 徐德俊 赵淑 石静 徐霞 徐俊
  3. (for %%i in (%str%) do echo %%i)>"%temp%\$"
  4. findstr /ixg:"%temp%\$" employee.txt >a.txt
  5. findstr /ivxg:employee.txt "%temp%\$"
  6. del "%temp%\$"
  7. pause
复制代码

作者: digger    时间: 2013-9-6 16:32

@echo off
:lp
set /a cc+=1
for /f "tokens=%cc%" %%i in (2.txt) do (
echo %%i >>4.txt
)
if %cc% gtr 1000 call :pl
goto lp
:pl
set "str=李明 杨刚 阿亚 天天 张三 李四 王五  麻子  麻六 阿狎"
for  %%j in (%str%) do (
find "%%j" 4.txt >nul || echo %%j
)
pause
换个思路,来个蜗牛式的
作者: PowerShell    时间: 2013-9-6 21:34

6个单独的查找,每成功一个不返回任何内容。每失败一个,结果的字符串就加上这个人的名字,最后打印结果。
作者: Batcher    时间: 2013-9-6 21:41

  1. grep -vE "张芳|施洁|徐德俊|赵淑|石静|徐霞" a.txt | more > b.txt
复制代码

作者: xpw    时间: 2013-9-6 22:19

  1. @echo off
  2. set "name=张芳 施洁 徐德俊 赵淑 石静 徐霞"
  3. for %%a in (%name%) do (findstr "%%a" employee.txt >nul||echo %%a>>nofind.txt)
  4. pause
复制代码

作者: hzcxdgioa    时间: 2013-11-28 23:27

路过看看!!!!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2