使用Windows批处理从文本文件中删除重复行

我想删除文本文件中的重复行,但只保留使用Windows批处理脚本第一次发生。

我尝试了很多方法,但是很长而且效率不高。

你能帮忙吗?

下面的批处理文件做你想要的:

 @echo off setlocal EnableDelayedExpansion set "prevLine=" for /F "delims=" %%a in (theFile.txt) do ( if "%%a" neq "!prevLine!" ( echo %%a set "prevLine=%%a" ) ) 

如果您需要更高效的方法,请尝试使用开发为过滤器的 Batch-JScript混合脚本,即类似于Unix uniq程序。 用.bat扩展名保存,就像uniq.bat一样:

 @if (@CodeSection == @Batch) @then @CScript //nologo //E:JScript "%~F0" & goto :EOF @end var line, prevLine = ""; while ( ! WScript.Stdin.AtEndOfStream ) { line = WScript.Stdin.ReadLine(); if ( line != prevLine ) { WScript.Stdout.WriteLine(line); prevLine = line; } } 

这两个程序都是从这个帖子复制的 。