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

然后在新文本的首行写入提取到的最后一行,用 findstr 语句过滤掉原文本的第一行和最后一行,在最后一行 之后添加提取到的第一行。


代码如下:

@echo off
:: 目的:把首行和尾行互换
:: 思路:
:: 提取第一行和最后一行内容(若首行和最后一行是空行,则提取到的是非空的第一行和非空的最后一行内容),
:: 然后在新文本的首行写入提取到的最后一行,用 findstr 语句过滤掉原文本的第一行和最后一行,在最后一行
:: 之后添加提取到的第一行。
:: 因为 findstr 处理最后一行有条件限制,所以先在最后一行之后生成一个空行,以保证提取的准确性
:: 注意:请保证test.txt中没有敏感字符,没有内容重复的行,并且首行不能为空
::    
::     
copy test.txt test.bak>nul
echo.>>test.txt
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set str=%%i
set /a num+=1
if !num! equ 1 set var=%%i
)
>test_.txt echo.%str%
findstr /b /e /v /c:"%str%" /c:"%var%" test.txt>>test_.txt
>>test_.txt echo.%var%
move test.bak test.txt
start test_.txt
goto :eof

@echo off
:: 可以处理首行为空、行内容重复的情况,
:: 注意:因为 findstr /n 统计行数的时候,会忽略最后一个空行
:: 所以,若在最后有空行的话,请保证空行的个数大于1
findstr /n .* test.txt>tmp1.txt
for /f "tokens=1* delims=:" %%i in (tmp1.txt) do (
if %%i equ 1 set str=%%j
set line=%%i&set var=%%j
)
>tmp2.txt echo %line%:%var%
findstr /b /v /c:"1:" /c:"%line%:" tmp1.txt>>tmp2.txt
echo 1:%str%>>tmp2.txt
echo.>>tmp2.txt
cd.>result.txt
for /f "tokens=1* delims=:" %%i in (tmp2.txt) do >>result.txt echo.%%j
del /q tmp1.txt tmp2.txt
start result.txt

(0)

相关推荐

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

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

  • Python中实现一行拆多行和多行并一行的示例代码

    粉丝提问 今天粉丝提了下面这样一个问题,其中一个是"一行拆多行",另外一个是"多行并一行",貌似群友用power query已经解决了.但是基于Python怎么做呢?接着往下看. 一行拆多行 上面这个问题我会提供两个思路,供大家选择,当然肯定是越简单得越好.每一种方法中都有一些好用的技巧,希望大家能够好好学习. 1)方法一 下方代码中有很多重要的知识点,需要我们下去好好学习一下,我这里只提供解体思路,关于每个知识点怎么用,希望大家下去自行研究学习. Pandas.m

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

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

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

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

  • laravel实现分页样式替换示例代码(增加首、尾页)

    前言 本文主要给大家介绍了关于laravel分页样式替换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 方法如下: 一.自定义一个类(代码如下),位置随你放,注意命名空间. 二.模板输出调用 {!! $data->render(new \App\Http\Controllers\ShmilyThreePresenter($data)) !!} 最终样式 实现代码 <?php //创建继承自 Illuminate\Pagination\BootstrapThreeP

  • Python中一行和多行import模块问题

    Python 不建议用一行 import 所有模块,而是推荐用多行 import 来导入模块.更多的是出于操作便利性的原因,与代码本身无关: 更易于阅读 import fred 比 import barney, betty, wilma, fred, bambam, pebbles 更容易找. 更易于搜索 能通过关键词马上 import fred 搜寻到位置,而 import barney, fred 不行. 更易于编辑: 插入和移除更快捷: 每行只声明一个模块,因此你不需要费力去找模块在哪:

  • Perl 函数集小结

    一.进程处理函数 1.进程启动函数 函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行.正确执行后,系统变量$@为空串,如果有错误,$@中为错误信息. 例子 $print = "print (\"hello,world\\n\");";eval ($print); 结果输出 hello, world 函数名 system 调用语法 system(list) 解说 list中第一个元素为程序名,其余为参数.system启动一

  • Linux VPS下SSH常用命令整理

    目录操作:rm -rf mydir /*删除mydir目录*/cd mydir /*进入mydir目录*/cd - /*回上一级目录*/  cd .. /*回父目录,中间有空格*/cd ~ /*回根目录*/mv tools tool /*把tools目录改名为tool */ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/cp -a tool /home/vpser/www /*把tool目录下所有文件复

  • javascript实现可全选、反选及删除表格的方法

    本文实例讲述了javascript实现可全选.反选及删除表格的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&qu

  • R语言之xlsx包读写Excel数据的操作

    感谢Adrian A. Drǎgulescu发布的xlsx包 xlsx包提供了必要的工具来与Excel 2007进行交互.用户可以阅读和编写xlsx,并可以通过设置数据格式.字体.颜色和边框来控制电子表格的外观.设置打印区域,缩放控制,创建分割和冻结面板,添加页眉和页脚.包使用Apache POI项目中的java库.本篇主要分享利用xlsx工具包在读写xlsx过程中所碰到的问题及解决办法. 工具准备 强烈建议大家使用RStudio这个IDE,它是以今为止对R语言最友好的一个IDE之一,而且使用很

随机推荐