Используйте fc.exe в командном файле, чтобы отделить новые строки от старых.

У меня есть два текстовых файла mount.txt а также mount2.txt и я пытался отделить новые строки (строки, которые не были в mount.txt, но находятся в mount2.txt) от старых строк (строки, которые были в mount.txt, но не в mount2.txt). Я знаю, что это должно быть возможно с чем-то вроде:

fc mount.txt mount2.txt >out.txt
for /F "tokens=*" %%A in  (out.txt) do (
 ::separate Line)

Вывод команды fc выглядит следующим образом:

Comparing files mount.txt and MOUNT2.txt
***** mount
ITCMDLogo
CBS
***** MOUNT2
Logo
ITCMDSecondLogo
CBS
*****

***** mount
MozillaPlugins
Acknowledgements
ReadMe\Palemoon-Portable-license.txt
***** MOUNT2
MozillaPlugins
ReadMe\Palemoon-Portable-license.txt
*****

Я не совсем понимаю, как именно это делать, так как я все еще начинающий for /f петли и setlocals,

1 ответ

Вместо fc используйте findstr с параметрами:

 /V         Prints only lines that do not contain a match.
 /I         Specifies that the search is not to be case-sensitive.
 /B         Matches pattern if at the beginning of a line.
 /E         Matches pattern if at the end of a line.
 /G:file    Gets search strings from the specified file(/ stands for console).

Вы можете собрать варианты только с одним /

> findstr /VIBELG:mount.txt <mount2.txt
Logo
ITCMDSecondLogo
Другие вопросы по тегам