Используйте 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