2012-10-24 32 views
6

Próbuję czegoś nowego, co zrobiłem w systemie UNIX, ale nie mam pojęcia, jak to zrobić w systemie Windows..bat, aby porównać dwa pliki tekstowe i wypisać różnicę.

Więc zapiszę plik tekstowy, powiedzmy test1.txt i 12 godzin później porównaj test2.txt (który jest test1.txt ze zmianami dodanymi w ciągu 12 godzin, prawie na pewno jest na końcu pliku) do test1.txt a następnie wyjście tylko różnice tekst do trzeciego pliku diff.txt

1 action 
2 action 
3 action 
4 action 
5 action 

i test2.txt wygląda

1 action 
2 action 
3 action 
4 action 
5 action 
6 action 
7 action 
8 action 

następnie wyjście do trzeciego diff.txt plik, wygląda następująco:

6 action 
7 action 
8 action 

z tylko tekstem, który został dodany, brak informacji dotyczących linii lub porównań, tylko podstawowy wynik różnic.

Jestem CAŁKOWICIE nowy, rozejrzałem się i wydaje mi się, że mogę napisać plik wsadowy (.bat), który będzie po prostu działał jak skrypt UNIX.

Przepraszam za moje podstawowe pytanie, ale mam pytanie w Google i nie mogę tego rozgryźć.

Odpowiedz

7

najprostszym i najszybszym sposobem jest użycie polecenia findstr będzie porównać i zwraca wynik do nowego pliku tutaj skrypcie

findstr /vixg:Z:\misc\test1.txt Z:\misc\misc\test2.txt > Z:\misc\misc\test3.txt 


findstr /vixg:<source file> <target file> > outputfile 

tutaj

/v : Prints only lines that do not contain a match. 
/i : Specifies that the search is not to be case-sensitive. 
/x : Prints lines that match exactly. 
/g: file : Gets search strings from the specified file. 
+0

jest drukowanie treści, które nie są dopasowane z Rignt plik strony podręcznej. –

1

Można spróbować czegoś takiego: -

@echo off 
    :main 
    fc c:\filename r:\filemame > nul 
    if errorlevel 1 goto error 

    :next 
    echo insert next CD 
    pause 
    goto main 

    :error 
    echo failed check 

Z source