查找偶数行内容的批处理_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

时间: 2024-10-24 21:54:39

查找偶数行内容的批处理_DOS/BAT的相关文章

反序列出文本的每行内容的批处理_DOS/BAT

复制代码 代码如下: @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%"==&

把首行和尾行互换的批处理_DOS/BAT

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

学会批处理_DOS/BAT

先概述一下批处理是个什么东东.批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了:但我想总结出一个"比较合适的",而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情.或许你会因为这篇文章而"无条件爱上批处理",那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由

批处理提取不同行上的内容的代码_DOS/BAT

for instance:- for /f "delims=" %%a in (input.txt) do ... for /f "delims=" %%a in ('type input.txt') do ... for /f "delims=" %%a in ('more ^< input.txt') do ... However, only the last method (using the more command) will g

批处理实现一行内容分行输出_DOS/BAT

a.txt: 代码: aA1一bB2二cC3三dD4四eE5五fF6六gG7七hH8八iI9九 输出如下: 代码: abcdefghi ABCDEFGHI 123456789 一二三四五六七八九 唯一要求,老手略过,留给新手做练习,不能直接echo. 请先发现其中的规律. 其他,生成临时文件.代码超过一页都不重要,正确输出即可. 523066680: 复制代码 代码如下: @echo off setlocal enabledelayedexpansion set a=-1 for /f "tok

反序显示输入内容批处理_DOS/BAT

复制代码 代码如下: @echo off :: 反序显示输入,能处理 数字+字母(区分大小写)+符号 格式的混合型输入 :: 区分大小写 :: 稍加改造,可以实现密码的枚举? :: 不能处理的字符: :: 管道符号:| :: 重定向符号:<.> :: 连接符号:& :: 脱字或逃逸符号:%.^ :: 其他符号:?.*.).=.;." :: code by jm 2006-9-7 CMD@XP cls set input= set /p input= 请输入一个字符串 set

基拉freedom写的一些批处理_DOS/BAT

进程管理 批处理小型化版(差不多最早做的) 复制代码 代码如下: @echo off title 进程管理 color 3F echo 进程管理 批处理小型化版 echo. echo lxsea 基拉 freedom echo 适用于任务管理器无法打开的简单操作和平时的病毒判断 echo www.lxsea.com tasklist pause color B1 echo 保存资料(将在此目录下生成.csv文件) echo. echo 如果你以前保存过资料 将会对现在和以前的资料进行比较 请注意

新入域的计算机枚举,显示加域人员的批处理_DOS/BAT

文件名:querycomputer.bat 功能:查找域内未分组的计算机,并显示计算机名和加域的用户 作用:可以实施监视计算机列表,以提醒进行计算机分组,也可审核计算机命名是否规范,确定责任人. 注意事项:批处理运行前,最好先将现有的域内computers容器内的计算机全部按OU分组,脚本运行后会罗列computers容器内的新计算机. 复制代码 代码如下: @echo off echo 域内未分组计算机监视 echo 如果找到计算机,将显示找到的计算机列表,并通过PC喇叭提示. echo. c

文本左右对齐排版的批处理_DOS/BAT

如1.txt内容如下.复制内容到剪贴板代码: 111111111111111111111 98912 张三 222222222222222222 150020 李四四 333333333333333333333 360000 王五 444444444444444444 2332 赵六六 555555555555555555 222 田七 666666666666666666666 999999 舞吧通过批处理输出为:复制内容到剪贴板代码: 111111111111111111111 98912