bat删除文本重复行,只留下没有出现过重复的行

例如文本内容是
1
1
2
2
3
处理后变成3,把出现重复的行都删掉

第1个回答  2015-08-01
@echo off&setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%a in (test.txt) do (
set /a n+=1
more +!n! test.txt | findstr /B /E /C:"%%~a" > nul || echo %%a
)
pause


追问

文件还是原来的样子,没有改变啊

追答@echo off & setlocal enabledelayedexpansion
set /a n=0
set "filename=test.txt"
(for /f "delims=" %%a in (%filename%) do (
set /a n+=1
if "!%%a!"=="" (
more +!n! %filename%|findstr /B /E /C:"%%~a" > nul||echo %%a
set "%%a=1")
))>#
move # %filename%

将set "filename=test.txt" 中的test.txt改为要处理的文件名

本回答被网友采纳