批处理,比较两个文件并将差异写入另一个文件

use*_*135 3 string grep compare batch-file findstr

我已经搜索了解决方案,但我仍然遇到问题。我有两个文件:

File1.txt
 1111
 2222
 3333

File2.txt
 1111
 2222
 3333
 4444
Run Code Online (Sandbox Code Playgroud)

我想要一个只有差异的输出文件:

File3.txt
 4444
Run Code Online (Sandbox Code Playgroud)

我试过使用 Findstr,但由于字符串太大而不起作用。我也尝试过使用 gerp 但我不能让它工作。

这是我的批处理代码(由于字符串太长,它不起作用):

findstr /vxg:vanilla_localisation.tsv mod_localisation.tsv > raf_changes.tsv 
for /f %%a in ('^<raf_changes.tsv find /v /c ""') do echo %%a differences found 
Run Code Online (Sandbox Code Playgroud)

我也试过这个代码:

grep -f vanilla_localisation.tsv mod_localisation.tsv > raf_changes.tsv
Run Code Online (Sandbox Code Playgroud)

但它只创建空文件。我是windows用户。希望你能帮我找到解决办法。

干杯

fox*_*ive 5

这应该有效:

findstr /v /g:file1.txt file2.txt >result.txt
Run Code Online (Sandbox Code Playgroud)

我认为这适用于 800 个字符 - 20000 行不会很快。

@echo off
for /f "delims=" %%a in (file2.txt) do (
   find "%%a" <"file1.txt" || >>result.txt echo %%a
)
Run Code Online (Sandbox Code Playgroud)