华域联盟 DOS/BAT 查找偶数行内容的批处理

查找偶数行内容的批处理

复制代码 代码如下:

@echo off

:: 查找偶数行内容

::

set n=0

for /f "delims=" %%i in (test.txt) do set /a n+=1

for /l %%i in (1,2,%n%) do (

findstr /n "." test.txt|findstr /r "^%%i:">>tmp.txt

)

for /f "tokens=1* delims=:" %%i in (tmp.txt) do echo %%j>>end.txt

del tmp.txt

start end.txt

goto :eof

另一种方案

:: 不产生临时文件,并且速度要快得多

:: findstr中如果用.*,则在空行的位置会显示"ECHO 处于关闭状态。";

:: 如果用.,则不会打印空行

:: code by jm CMD@XP 2006-7-29

@echo off

cd.>result.txt

setlocal enabledelayedexpansion

for /f "tokens=1* delims=:" %%i in ('findstr /n "." test.txt') do (

set num=%%i

call :mod

if !mod! equ 0 echo %%j>>result.txt

)

start result.txt

goto :eof

:mod

set /a mod=%num%%%2

goto :eof

把上一段代码稍加改造,就可以去掉文本中的空行

@echo off

cd.>tmp.txt

for /f "tokens=1* delims=:" %%i in ('findstr /n "." test.txt') do (echo %%j>>tmp.txt)

cd.>result.txt

:: 当文本中的空行是其他未知代码时(从网页中复制过来会出现这种情况),

:: 会在空行处显示"ECHO 处于关闭状态。",以下代码是删除这行内容

findstr /v "\<ECHO 处于关闭状态。\>" tmp.txt>>result.txt

del /q tmp.txt

本文由 华域联盟 原创撰写:华域联盟 » 查找偶数行内容的批处理

转载请保留出处和原文链接:https://www.cnhackhy.com/16326.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部