使用批处理脚本删除文本文件中的所有实例

时间:2015-11-11 07:02:31

标签: batch-file find-occurrences

我想在文本文件中说:

  

Planets.txt

     
    

火星
    地球
    木星
    土星
    火星
    天王星
    木星
    冥王星

  

如何删除所有匹配项,并将文字文件中的单词显示一次?

  

Output_Planets.txt (出现次数:火星,木星)

     
    

火星
    地球
    木星
    土星
    天王星
    冥王星

  

我不知道怎么做...谢谢。

1 个答案:

答案 0 :(得分:1)

@ECHO OFF
SETLOCAL
:: establish a zero-byte output file
SET "newfile=u:\newfile.txt"
COPY /y nul "%newfile%" 2>NUL >nul
FOR /f "delims=" %%a IN (q33645665.txt) DO (
 FINDSTR /x /i /l /c:"%%a" "%newfile%" >NUL
 IF ERRORLEVEL 1 >>"%newfile%" ECHO %%a
)

TYPE "%newfile%"

GOTO :EOF

我使用了一个名为q33645665.txt的文件,其中包含我的测试数据。

制作u:\ newfile.txt

如果在新文件中找到匹配FINDSTR的字符串,

errorlevel会将0设置为%%a/x强制匹配在整行上,/i指定匹配不区分大小写。 /l使匹配文字,而不是正则表达式和字符串前面的/c:指定提供的字符串是一个元素,而不是一组字符串,以便包含分隔符的字符串谎言空间可以匹配。