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

Remove all occurrences in a text file with batch script

假设在一个文本文件中,我有:

Planets.txt

Mars
Earth
Jupiter
Saturn
Mars
Uranus
Jupiter
Pluto

我怎样才能删除所有出现的地方并让单词在文本文件中只出现一次?

Output_Planets.txt (Occurrences: Mars, Jupiter)

Mars
Earth
Jupiter
Saturn
Uranus
Pluto

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

@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

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

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