Konfigurationsdateien (Dateiname.cfg) per Batch vergleichen
Ich habe die Aufgabe bekommen Konfigurationsdateien (Dateiname.cfg) per Batch auf Änderungen zu überprüfen und dann gegebenfalls auf die Änderungen per E-mail hiinzuweisen.
Hi nochmal an alle,
also wie schon oben beschrieben soll ich eine Batch-Datei scripten mit der ich Konfigurationsdateien (Dateiname.cfg) Zeile für Zeile vergleiche und dann per E-mail auf die Änderungen hinweisen.
Es wird dann so aussehen, dass ich eine alte Konfigurationsdatei bereits habe und diese dann mit der neuen Konfigurationsdatei Zeile für Zeile vergleichen soll. Bei den Konfigurationsdateien handelt es sich um Konfigurationen von Switchen.
Also:
alte Datei Zeile für Zeile vergleichen mit neuer Datei ---> Änderungen in eine E-mail packen
Ich hoffe es ist klar geworden was ich brauche^^
Wenn nicht meldet euch.
Danke schon mal im Vorraus.
Gruß Bart
Hi nochmal an alle,
also wie schon oben beschrieben soll ich eine Batch-Datei scripten mit der ich Konfigurationsdateien (Dateiname.cfg) Zeile für Zeile vergleiche und dann per E-mail auf die Änderungen hinweisen.
Es wird dann so aussehen, dass ich eine alte Konfigurationsdatei bereits habe und diese dann mit der neuen Konfigurationsdatei Zeile für Zeile vergleichen soll. Bei den Konfigurationsdateien handelt es sich um Konfigurationen von Switchen.
Also:
alte Datei Zeile für Zeile vergleichen mit neuer Datei ---> Änderungen in eine E-mail packen
Ich hoffe es ist klar geworden was ich brauche^^
Wenn nicht meldet euch.
Danke schon mal im Vorraus.
Gruß Bart
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153773
Url: https://administrator.de/forum/konfigurationsdateien-dateiname-cfg-per-batch-vergleichen-153773.html
Ausgedruckt am: 22.04.2025 um 22:04 Uhr
11 Kommentare
Neuester Kommentar

Moin,
aus gegebenem Anlass...(du sollst die scripten) (Hi nochmal an alle,) war wohl ein PN Versuch...
nur Hinweise:
DIe eingebauten Hilfen der jeweiligen Befehle zeigen dir die Befehle, ich hab dir mal 2 von 3 möglichen Befehlen (Wegen) genannt
Gruß
aus gegebenem Anlass...(du sollst die scripten) (Hi nochmal an alle,) war wohl ein PN Versuch...
nur Hinweise:
fc alt.csv neu.csv
for /f %a in (alt.csv) do ?
findstr /?
findstr /?
DIe eingebauten Hilfen der jeweiligen Befehle zeigen dir die Befehle, ich hab dir mal 2 von 3 möglichen Befehlen (Wegen) genannt
Gruß

Moin,
1.500 Files mit FC - oh weh
Was genau soll den da Ziel sein?
Am "einfachsten" wäre alle 1.500 cfgs nach ihrem Ziel zu sortieren - obwohl deine "Kryptischen" Dateinamen sind doch sinnig - ip_Adresse_datum.cfg
Entweder machst du das also nach dem Dateinamen, oder nach dem Inhalt und dann jeden Treffer vergleichen.
Ehrlicherweise würde ich das aber nicht machen, sondern lieber neu anfangen und nur dann - wenn die aktuelle cfg neuer/anderen Inhalt hat die abspeichern.
Im normalfall intersiieren mich meine ollen cfg Files der Switche nie mehr - allerhöchstens wenn ich mal einen Bock geschossen habe - den merkt man aber sofort und holt sich seine cfg zurück.
Von daher - trink nochmal nen Kaffe und überleg dir wohin die Reise gehen soll.
Gruß
1.500 Files mit FC - oh weh
Was genau soll den da Ziel sein?
Am "einfachsten" wäre alle 1.500 cfgs nach ihrem Ziel zu sortieren - obwohl deine "Kryptischen" Dateinamen sind doch sinnig - ip_Adresse_datum.cfg
Entweder machst du das also nach dem Dateinamen, oder nach dem Inhalt und dann jeden Treffer vergleichen.
Ehrlicherweise würde ich das aber nicht machen, sondern lieber neu anfangen und nur dann - wenn die aktuelle cfg neuer/anderen Inhalt hat die abspeichern.
Im normalfall intersiieren mich meine ollen cfg Files der Switche nie mehr - allerhöchstens wenn ich mal einen Bock geschossen habe - den merkt man aber sofort und holt sich seine cfg zurück.
Von daher - trink nochmal nen Kaffe und überleg dir wohin die Reise gehen soll.
Gruß

moin,

und das ganze noch etwas sauberer:
Gruß
edit:

/edit
der "fc- Befehl" geht ja nur wenn die Daten im selben Ordner liegen?
??? der geht nie - der hat keine Beine rem preparethetest
if not exist c:\test md c:\test
if not exist c:\test\111 md c:\test\111
if not exist c:\test\222 md c:\test\222
echo %date%>c:\test\111\123.cfg
echo %date%>c:\test\222\123.cfg
rem run the test successfully
for /f %%a in ('dir /b c:\test\111\*.cfg') do fc c:\test\111\%%a c:\test\222\%%a
pause
rem run the test not successfully
echo %time%>c:\test\111\123.cfg
echo %time%>c:\test\222\123.cfg
for /f %%a in ('dir /b c:\test\111\*.cfg') do fc c:\test\111\%%a c:\test\222\%%a
pause
und das ganze noch etwas sauberer:
for /f %%a in ('dir /b c:\test\111\*.cfg') do if exist c:\test\222\%%a fc c:\test\111\%%a c:\test\222\%%a
Gruß
edit:
Zitat von @60730:
Moin,
aus gegebenem Anlass...(du sollst die scripten)
Moin,
aus gegebenem Anlass...(du sollst die scripten)
/edit

Moin,
hmmm da oben hab ich dir doch einen Weg gezeigt?
Jetzt nimmst du mal diesen Schnippsel und malst vor jeden der beiden Pause in eine zusätzliche Zeile ein echo %errorlevel%.
Damit (obere Schnippsel) hast du zwei von drei Werten, die fc zurückgibt.
Der andere ist da oben mit der Befehlskette "if not exist" ausgeschaltet
Grob gescriptet hab ich dir die ja schon, aber etwas Eigenleistung solltest du schon aufbringen.
Gruß
hmmm da oben hab ich dir doch einen Weg gezeigt?
Jetzt nimmst du mal diesen Schnippsel und malst vor jeden der beiden Pause in eine zusätzliche Zeile ein echo %errorlevel%.
Damit (obere Schnippsel) hast du zwei von drei Werten, die fc zurückgibt.
Der andere ist da oben mit der Befehlskette "if not exist" ausgeschaltet
Grob gescriptet hab ich dir die ja schon, aber etwas Eigenleistung solltest du schon aufbringen.
Gruß

was willst du den damit bezwecken? Erstellst doch einfach 3 Ordner oder?
01. rem preparethetest
- Oder auf Deutsch bereite eine Testumgebung vor...
Damit wird das aktuelle Datum ausgelesen
- Nein das Datum wird "IN" die beiden Dateien geschrieben
for /f %%a in ('dir /b c:\test\111\*.cfg') do fc c:\test\111\%%a c:\test\222\%%a
der Inhalt dieser Zeile erschließt sich mir nicht genau. Du vergleichst doch damit alle .cfg dateien in dem Ordner 111 mit den .cfg Dateien in dem Ordner 222 (mithilfe einer For-Schleife)
der Inhalt dieser Zeile erschließt sich mir nicht genau. Du vergleichst doch damit alle .cfg dateien in dem Ordner 111 mit den .cfg Dateien in dem Ordner 222 (mithilfe einer For-Schleife)
- alle aus Ordner 111 mit Ihrem gleichnamigen Vetter aus Ordner 222
Warum machst du den Vergleich dann nochmal?
- Was steht im Rem vor dem zweiten Vergleich?
- Wenn ich zweimal hintereinander %Time% abfrage -sind die ausgegebenen Werte dann auf die millisekunden identisch?
Helf mir mal kurz auf die Sprünge
- *gübel* ehrlich - wenn das da oben schon zu komplex ist, das man das nicht nachvollziehen kann, dann muß ich mir wohl einen Kittel mit rückwärtig angebrachten Ärmeln besorgen....

Zitat von @Bart15:
Allerdings hab ich dabei ja immer noch keine Ausgabe der Unterschiede von den Dateien. Wie geb ich dem denn das mit, dass der nach jedem Durchlauf der
For-Schleife die Unterschiede in die slebe TXT-Datei schreibt. Soll ja am ende alles in einer Datei stehen.
Allerdings hab ich dabei ja immer noch keine Ausgabe der Unterschiede von den Dateien. Wie geb ich dem denn das mit, dass der nach jedem Durchlauf der
For-Schleife die Unterschiede in die slebe TXT-Datei schreibt. Soll ja am ende alles in einer Datei stehen.
for /f %%a in ('dir /b c:\test\111\*.cfg') do fc c:\test\111\%%a c:\test\222\%%a>>c:\test\logfile.txt
Die Sache mit der Zeit habe ich jetzt erstmal weggelassen. Sehe ich für mich keine Relevanz darin.
???? Das ist ein einfacher Test der unterschiedliche cfg erzeugt und dir zeigen sollte, was passiert, wenn unterschiedliche Dateien verarbeitet werden....(ich hätte auch in eine cfg Hallo Otto schreiben und die andere so lassen können)
Ich hab ja 2 Ordner mit den Konfigdateien. In dem einen sind die neuen und in dem anderen die alten Dateien.
Nochmal, du wolltest was selber schreiben, und wirklich so krumm ist keine einzige Zeile, dass man dafür studiert haben muß. (wie bekomme ich eine Ausgabe aus einer Dosbox in eine Textdatei?)
Ich ahne, das einer von uns beiden leicht überfordert ist und werfe das Handtuch...
Gruß