crashoversteel
Goto Top

Inhalt 2er Dateien vergleichen

Hallo,
ich möchte zwei Textdateien vergleichen und die Unterschiede dann in eine dritte schreiben.
So sieht mein Programm aus aber es funktioniert net.

@echo off

echo Bitte geben sie den Pfad ein:

SET /p pfad=

for /f "delims=" %%i IN (%pfad%) do (

(find "%%i" "c:\datei2.txt" >nul)

)

if errorlevel ==1 %%i >>"c:\change.txt"

Content-Key: 29401

Url: https://administrator.de/contentid/29401

Printed on: April 26, 2024 at 13:04 o'clock

Member: cykes
cykes Mar 31, 2006 at 08:17:20 (UTC)
Goto Top
Hi,

das kannst Du Dir erheblich leichter machen, gib mal auf der Kommandozeile
"comp /?" ein face-wink

mit "comp datei1 datei2 /a >unterschied.txt" sollte das erledigt sein...

Gruß

cykes
Member: CrashOversteel
CrashOversteel Mar 31, 2006 at 08:48:44 (UTC)
Goto Top
Funktioniert, aber er zeigt nur z.B OFFSET 49 und den den Buchstaben bzw. die Zahl die verändert wurde, lieber wäre mir das er dann die komplette IP-Adresse ausgibt. Bei Gemeinsamkeiten hatte das schon funktioniert, aber Unterschiede noch net.
Member: cykes
cykes Mar 31, 2006 at 08:58:11 (UTC)
Goto Top
Willst Du die beiden Dateien zeilenweise oder komplett vergleichen?
Member: CrashOversteel
CrashOversteel Mar 31, 2006 at 09:00:54 (UTC)
Goto Top
Zeilenweise, er liest ja aus der ersten Datei, eine Adresse ein und speichert sie in einer Variable. Dann soll die Variable mit der gleichen Zeile aus der andren Datei verglichen werden
Member: Biber
Biber Mar 31, 2006 at 15:49:11 (UTC)
Goto Top
Moin CrashOversteel,

ich seh noch nicht ganz klar - sind in den Dateien nur je eine IP pro Zeile oder auch mehrere Token pro Zeile oder sind das *.ini-Dateien?
Kannst Du nich mal bitte eine Handvoll Zeilen posten (zumindest das Layout)?
Danke
Biber
Member: CrashOversteel
CrashOversteel Apr 06, 2006 at 10:09:33 (UTC)
Goto Top
z.B. 111.222.333.444 | 111.222.333.444
192.168.0.2 | 192.168.0.2
192.138.112.36 | 192.138.112.37 hier soll er dann einen Fehler rausfinden
xxx.xxx.xxx.xxx | xxx.xxx.xxx.xxx usw.
Member: Biber
Biber Apr 06, 2006 at 15:33:16 (UTC)
Goto Top
Hm,
wenn ich das hier abbilde:
Zeilenweise, er liest ja aus der ersten Datei, eine Adresse ein und speichert sie in einer Variable.
Dann soll die Variable mit der gleichen Zeile aus der andren Datei verglichen werden
...und dieses Szenario habe...
---- Inhalt Ipliste1.txt
111.222.333.444
192.168.0.2
192.138.112.36

---- Inhalt Ipliste1.txt
111.222.333.444
192.168.0.2
192.138.112.37
...und diesen Schnipsel laufen lasse:
::------snipp CompLines.bat
@echo off & setlocal enabledelayedexpansion
Set /a counter=0 && REM Alle Zeilen in %11 "merken in "%Line1%"..."%Line999%"  
For /F %%i in (%1) do (Set /a Counter=!counter!+1) & Set Line!counter!=%%i
:: Jetzt Zeile für Zeile vergleichen
Set /a counter=0 && For /F %%i in (%2) do call :comp %1 %2 %%i
goto :eof
:comp
Set /A counter+=1 && Set oldLine=!line%counter%!
IF [%oldline%] NEQ [%3] echo %1: [%oldLine%]  --- %2: [%3] in Zeile !counter!
goto :eof
::------snapp CompLines.bat
..dann kommt sowas raus:
$cmd$ CompLines.bat ipliste1.txt ipliste2.txt
ipliste1.txt: [192.138.112.36]  --- ipliste2.txt: [192.138.112.37] in Zeile 3

Meinst Du so in dieser Richtung?
Gruß Biber