Use o fc.exe no arquivo em lote para separar as novas linhas das linhas antigas

0

Eu tenho dois arquivos de texto mount.txt e mount2.txt e tenho tentado separar novas linhas (linhas que não estavam no mount.txt, mas estão no mount2.txt) de linhas antigas (linhas que estavam no mount .txt mas não estão no mount2.txt). Eu sei que isso deve ser possível com algo como:

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

A saída do comando fc se parece com isto:

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
*****

Estou muito empolgado com a maneira exata de fazer isso, pois ainda sou muito iniciante em for /f loops e setlocals .

    
por Mark Deven 15.06.2018 / 15:49

1 resposta

0

Em vez de fc use findstr com as opções:

 /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).

Você pode reunir as opções com apenas um /

> findstr /VIBELG:mount.txt <mount2.txt
Logo
ITCMDSecondLogo
    
por 15.06.2018 / 17:22