批处理技巧:查找第一个文件中不存在于第二个文件的字符串
解决方法
要找出第一个文件(1.txt)中未在第二个文件(2.txt)中出现过的字符串,你之前用的findstr /G逻辑方向相反,它会提取2.txt里包含1.txt关键词的行。可以用以下CMD命令实现需求:
for /f "delims=" %a in (1.txt) do findstr /c:"%a" 2.txt >nul || echo %a >> C:\Temp\results.txt
命令说明:
for /f "delims=" %a in (1.txt):逐行读取1.txt的内容,将每行内容赋值给变量%afindstr /c:"%a" 2.txt >nul:在2.txt中精确查找当前行的字符串,>nul用于屏蔽查找过程的输出|| echo %a >> C:\Temp\results.txt:若前面的查找失败(即当前字符串未在2.txt中找到),就将该字符串追加到结果文件中
可选调整:
- 若需要区分大小写查找,保持原命令即可;若要忽略大小写,给
findstr加上/i参数 - 若不想写入文件,直接在控制台输出结果,去掉
>> C:\Temp\results.txt即可
内容的提问来源于stack exchange,提问作者Peca21
相关产品推荐
相关产品推荐

