查找偶数行内容的批处理

代码如下:

@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

(0)

相关推荐

  • 查找偶数行内容的批处理

    复制代码 代码如下: @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 i

  • 反序列出文本的每行内容的批处理

    复制代码 代码如下: @echo off :: 反序列出文本的每行内容 :: 不能处理双引号 :: code by jm 2006-10-5 Modified on 2007-3-13 CMD@XP for /f "delims=" %%i in (test.txt) do ( set "str=%%i" set var= call :intercept ) pause goto :eof :intercept if not "%str%"==&

  • Java基础之查找文本特定内容后进行修改

    一.问题的产生 基于I/O流编写的图书馆管理系统 在最近使用I/O流写图书馆管理系统中有修改图书信息的部分,以及借书和还书等多个部分内容都需要对文本中的特定位置的内容进行精确查找并修改,在查阅资料和同学讨论后最终将该问题解决了. 二.问题的解决 下面通过修改密码为例,演示一下该方法的实现: 具体代码: String filePath = "用户信息.txt"; User modifyFile = new User(); System.out.println("请输入原密码:&

  • PowerShell读取文本文件指定行内容的方法

    本文介绍一个PowerShell中如何一步到位的获取到一个文本文件的第N行.比如一个文本文件,它有1000行,我想把第500行的内容直接取出来的,最简单的方法是通过PowerShell来实现. 在PowerShell中,可以通过Get-Content这个cmdlet来获取文本文件的内容.Get-Content将一个文本文件读取到一个数组中,每一个数组元素就是文件的一行内容.比如一个文本文件内容如下: 复制代码 代码如下: 111 222 333 那么,使用Get-Content获取到一个数组,数

  • for 提取文本整行内容的方法

    通常我们需要提取文本整行内容时都是这么写的. 复制代码 代码如下: for /f "delims=" %%a in (a.txt) do echo.%%a 但是分号开头的行呢,for也会忽略掉,很多时候我们需要这些行,怎么办. 用findstr 等外部命令太麻烦,用eol 忽略一个不可见字符,不失为一个不错的办法,但始终忽略了某个字符开头的行,且获取这个不可见字符也比较麻烦. 其实有更简单的方法,就是把eol放在最后. 复制代码 代码如下: @echo off rem 提取所有行,可同

  • 把首行和尾行互换的批处理

    然后在新文本的首行写入提取到的最后一行,用 findstr 语句过滤掉原文本的第一行和最后一行,在最后一行 之后添加提取到的第一行. 复制代码 代码如下: @echo off :: 目的:把首行和尾行互换 :: 思路: :: 提取第一行和最后一行内容(若首行和最后一行是空行,则提取到的是非空的第一行和非空的最后一行内容), :: 然后在新文本的首行写入提取到的最后一行,用 findstr 语句过滤掉原文本的第一行和最后一行,在最后一行 :: 之后添加提取到的第一行. :: 因为 findstr

  • linux系统中使用Vim删除偶数行或者奇数行

    删除偶数行的方法如下: :g/^/+1 d 上面用到了:gbobal命令,gbobal命令格式如下: :[range]global/{pattern}/{command} global命令实际上是分成两步执行:首先扫描[range]指定范围内的所有行,给匹配{pattern}的行打上标记:然后依次对打有标记的行执行{command}命令,如果被标记的行在对之前匹配行的命令操作中被删除.移动或合并,则其标记自动消失,而不对该行执行{command}命令.{command}可以是一个ex命令,也可以

  • JS实现控制表格行内容垂直对齐的方法

    本文实例讲述了JS实现控制表格行内容垂直对齐的方法.分享给大家供大家参考.具体分析如下: 下面的代码通过表格的vAlign属性控制表格行的内容垂直对齐,可以置顶.可以居中.可以底部对齐 <!DOCTYPE html> <html> <head> <script> function topAlign() { document.getElementById('tr2').vAlign="top"; } </script> <

  • SQL Server将一列的多行内容拼接成一行的实现方法

    下面大家先看下示例代码: 示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称 AAA 企业1,企业2,企业3 BBB 企业4,企业5 一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*) ),从网上找了点资料,算是找到一种比较简单方便

  • PHP 读取大文件的X行到Y行内容的实现代码

    需要读取一个文件的几行内容,但是文件比较大,所以研究了下php读取大文件的几行内容的方法,写了一个方法,代码如下(加了注释): 缓存文件如果能够保存在一行, 而利用算法读取指定的行数, 自然会比全部读出来挑选要快得多. 但php似乎这方面比较弱, 不太好操作. 就算使用SplFileObject仍然不是特别可取, 内存压力存在. 复制代码 代码如下: $fp->seek($startLine - 1); 经过测试, 此行代码在8MB文本中游走到最后一行, 内存占用为49KB, 还算不错. 换成f

随机推荐