Vergleichen von Dateigrößen per Batch
Hab euch gestern entdeckt und hoffe ihr könnt mir helfen.
Also ich bin ein totaler Programier noob.
Hab kurz Java gemacht aber nicht wirklich verstanden und wollte einen neustart mit der Batch Programierung machen.
Also ich brauch eine Batch, die jeweils 2 Dateien mitteinander vergleicht. Entscheident dafür ist die Größe und der Name.
Insgesamt sind es 6 Dateien, also 3 mal 2 Dateien vergleichen.
Die Dateien sind in 2 verschiedenen Ordner einer ist Lokal auf jedem Rechner und einer (der aktuelle) ist auf unserem Server.
Die Dateien gibt es jeweils 2 mal...also 2 mal packages.xml, 2 mal hosts.xml und 2 mal profiles.xml.
Also Quasi so:
:::profiles.xml:::
:::packages.xml:::
:::hosts.xml:::
::profiles.xml:::
:::packages.xml:::
:::hosts.xml:::
Die profiles.xml soll mit der anderen profiles.xml verglichen werden.
Die hosts.xml soll mit der hosts.xml verglichen werden.
Und die packages.xml soll mit der packages.xml verglichen werdeb.
Also entscheident sollten die Größe der dateien sein.
Diese unterscheiden sich aber nur minimal.
Also 15kb zu 15,2kb oder so...
Ich werde später noch mehr hilfe brauchen aber ich hab das der übersicht halber mal editiert.^^
Danke schonmal für eure Hilfe!
Gruss BKAMk2
Also ich bin ein totaler Programier noob.
Hab kurz Java gemacht aber nicht wirklich verstanden und wollte einen neustart mit der Batch Programierung machen.
Also ich brauch eine Batch, die jeweils 2 Dateien mitteinander vergleicht. Entscheident dafür ist die Größe und der Name.
Insgesamt sind es 6 Dateien, also 3 mal 2 Dateien vergleichen.
Die Dateien sind in 2 verschiedenen Ordner einer ist Lokal auf jedem Rechner und einer (der aktuelle) ist auf unserem Server.
Die Dateien gibt es jeweils 2 mal...also 2 mal packages.xml, 2 mal hosts.xml und 2 mal profiles.xml.
Also Quasi so:
Updates Ordner auf Server |
:::profiles.xml:::
:::packages.xml:::
:::hosts.xml:::
Lokaler Ordner auf Rechnern |
::profiles.xml:::
:::packages.xml:::
:::hosts.xml:::
Die profiles.xml soll mit der anderen profiles.xml verglichen werden.
Die hosts.xml soll mit der hosts.xml verglichen werden.
Und die packages.xml soll mit der packages.xml verglichen werdeb.
Also entscheident sollten die Größe der dateien sein.
Diese unterscheiden sich aber nur minimal.
Also 15kb zu 15,2kb oder so...
Ich werde später noch mehr hilfe brauchen aber ich hab das der übersicht halber mal editiert.^^
Danke schonmal für eure Hilfe!
Gruss BKAMk2
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 68365
Url: https://administrator.de/forum/vergleichen-von-dateigroessen-per-batch-68365.html
Ausgedruckt am: 23.12.2024 um 19:12 Uhr
9 Kommentare
Neuester Kommentar
Mal ungetestet und nur für eine der Drei paare so (die andern gehen dan entsprechend):
miniversum
@echo off
set localdir="C:"
set serverdir="X:"
FOR /F "delims= " %%l in ('dir /b "%localdir%\profiles.xml"') do set localsize=%~zl
FOR /F "delims= " %%s in ('dir /b "%serverdir%\profiles.xml"') do set serversize=%~zs
if %localsize% gtr %serversize% (
echo locale Datei ist groesser
) else (
echo Datei auf Server ist groesser
)
set localdir="C:"
set serverdir="X:"
FOR /F "delims= " %%l in ('dir /b "%localdir%\profiles.xml"') do set localsize=%~zl
FOR /F "delims= " %%s in ('dir /b "%serverdir%\profiles.xml"') do set serversize=%~zs
if %localsize% gtr %serversize% (
echo locale Datei ist groesser
) else (
echo Datei auf Server ist groesser
)
miniversum
Moin BKAMk2,
soweit ich es lesen kann..
--->Falsch : ...if %serversize% gtr %slocalsize%(
--->Richtiger: ...if %serversize% gtr %localsize% (
Bitte nutze beim Posten die -Formatierung. Beispiel in Deinem letzten Kommentar.
Grüße
Biber
P.S. Anmerkung:
Statt: FOR /F "delims= " %%l in ('dir /b "%localdir%\profiles.xml"') do set localsize=%%~zl
Reicht: FOR %%l in ('"%localdir%\profiles.xml") do set localsize=%%~zl
soweit ich es lesen kann..
--->Falsch : ...if %serversize% gtr %slocalsize%(
--->Richtiger: ...if %serversize% gtr %localsize% (
Bitte nutze beim Posten die -Formatierung. Beispiel in Deinem letzten Kommentar.
Grüße
Biber
P.S. Anmerkung:
Statt: FOR /F "delims= " %%l in ('dir /b "%localdir%\profiles.xml"') do set localsize=%%~zl
Reicht: FOR %%l in ('"%localdir%\profiles.xml") do set localsize=%%~zl
Moin BKAMk2,
bitte poste doch noch mal die komplette Batchdatei in einem
... ein paar Leerzeilen
-oder-
eine der Dateien wird nicht gefunden und die %xxxsize%-Variable ist dadurch undefiniert.
In letzterem Fall würde ein Syntaxfehler auftreten, den Du vermeiden kannst durch:
---> if defined %localsize% if defined %serversize% if %localsize% gtr %serversize% ( ...
Sieht hässlich aus, erspart aber noch hässlichere Fehlermeldungen.
Grüße
Biber
bitte poste doch noch mal die komplette Batchdatei in einem
-Tag.
Eventuell hast Du hier in miniversums Skizze:
if %localsize% gtr %serversize% (
echo locale Datei ist groesser
) else (
echo Datei auf Server ist groesser
)
-oder-
eine der Dateien wird nicht gefunden und die %xxxsize%-Variable ist dadurch undefiniert.
In letzterem Fall würde ein Syntaxfehler auftreten, den Du vermeiden kannst durch:
---> if defined %localsize% if defined %serversize% if %localsize% gtr %serversize% ( ...
Sieht hässlich aus, erspart aber noch hässlichere Fehlermeldungen.
Grüße
Biber