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

所属分类: 脚本专栏 / DOS/BAT 阅读数: 957
收藏 0 赞 0 分享
然后在新文本的首行写入提取到的最后一行,用 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
更多精彩内容其他人还在看

服务器应用自动重新启动IIS批处理 原创

本站原创的用bat实现重新启动服务器的IIS服务器
收藏 0 赞 0 分享

命令行实现MAC与IP地址绑定 ip mac绑定 如何绑定mac地址

一般手上没有软件,就可以使用这命令行实现MAC与IP地址绑定
收藏 0 赞 0 分享

diskcopy 命令使用说明

diskcopy 命令使用说明
收藏 0 赞 0 分享

arp病毒 防止arp病毒的批处理

建个文本文档 复制以上代码保存为bat文件.加载到启动项去,这样应该能防护到.每次开机时都绑定绑定网关Mac和IP 确实能防止中arp
收藏 0 赞 0 分享

del rd命令行下删除文件不需要确认

del rd命令行下删除文件不需要确认
收藏 0 赞 0 分享

dos下用recover修复损坏的TXT文件

修复损坏的TXT文件的简单方法
收藏 0 赞 0 分享

批处理设置windows服务器的代码ThecSafe1.9.4第1/3页

一个既是服务器安全设置工具,也是一个学习批处理非常好的教程。虽然入手看是难了点,只有带着问题去学习才能真正的去了解。
收藏 0 赞 0 分享

服务器常用批处理代码 原创

经常维护服务器,由于mssql数据库经常会占用大量内存,所以我查找资料写了如下代码,方便自己也利于别人使用,都是直接从服务器上直接拿来的
收藏 0 赞 0 分享

利用mshta调用运行js或vbs的

mshta同时调用js和vbs
收藏 0 赞 0 分享

DOS命令 Interlnk、Intersvr命令使用说明

interlnk    启动简易网客户机 [适用场合]  如果有两台电脑可以通过它和intersvr联成简易的网络,这是条很有          用的命令,但不常用
收藏 0 赞 0 分享
查看更多