@echo off
setlocal enabledelayedexpansion
::(Type test.txt | find "Ranqq" )>1.txt
::set /p find=<1.txt
Type bb.txt | find "FAILED (failure11" > 1.txt
If ERRORLEVEL 1 goto ok
for /f "tokens=2 delims==" %%i in ("FAILED (failure=9)") do (
echo %%i
set failTests=%%i
set failTsets=%failTests:0,-1%
echo %failTests%)
:ok
set c=0 & echo !c! & goto cc
:end
:bb
echo "aa"
:cc
for %%a in ("123" "abc 12" "啊哈" "百度 一下") do findstr /c:"%%~a" file.txt>>new.txt
利用for命令获取给定的值,然后一个一个传值给findstr进行处理。
版权归作者所有,任何形式转载请联系作者。
作者:牧默(来自豆瓣)
来源:https://www.douban.com/note/602713331/
D:
hello.txt
ltest_qa.txt
test.txt
test1_QA.txt
test2.txt
要找出所有包含test,不包含QA的文件。
for %i in (D:*test*.txt) do (echo %i|find /v /i "_qa") && (下一个处理筛选出的文本的命令)
解释:
1、for %i in (D:*test*.txt) :取出所有包含test的文件赋值给%i;
2、echo %i|find /v /i "_qa":/v排除,/i忽略大小写,这句的意思是打印排除含"_qa"字符串的文件名;
3、同时用&&在for循环里处理筛选后的文件。
求教还有更好的方式吗?
例如一个文件a.txt里面内容的格式是
10.1.2.1 hostname.xx.com.cn
10.1.3.5 hostname2.xx.com.cn
10.2.4.5 hostname3
@
echo
off
setlocal enabledelayedexpansion
for
/f
"tokens=1,2"
%%i
in
(a.txt)
do
(
set
ip=%%i
set
name=%%j
echo
ip=!ip! name=!name!)
pause