derkleba
Goto Top

Größe von Dateien vergleichen und Ergebnis ausgeben bzw. verwenden

Hallo ihr Lieben!

Ich habe eine Frage. Und zwar:

Wie kann ich per Batch herausfinden ob 2 Dateien gleich groß sind oder nicht und wie verwende ich das Ergebnis einer solchen Abfrage.

Beispielsweise:
Ich vergleiche die Größe von 2 Dateien und möchte das, WENN die Dateien gleich groß sind quasi gesagt wird "Alles klar" und GOTO Irgendwas und WENN sie nicht gleich groß sind "Hey, die sind nicht gleich groß" GOTO EtwasAnderes.

Sinngemäß zumindest. Hoffe ihr könnt mir helfen face-smile

Und entschuldigt bitte, falls so ein Beitrag schon existiert, konnte nichts finden.

LG
DerKleba

Content-ID: 59611

Url: https://administrator.de/forum/groesse-von-dateien-vergleichen-und-ergebnis-ausgeben-bzw-verwenden-59611.html

Ausgedruckt am: 24.12.2024 um 02:12 Uhr

bastla
bastla 23.05.2007 um 14:00:17 Uhr
Goto Top
Hallo DerKleba!

Versuch es einmal so:
@echo off & setlocal
for %%i in (Datei1.txt) do set S1=%%~zi
for %%i in (Datei2.txt) do set S2=%%~zi
if %S1%==%S2% echo Gleich & goto :eof
echo Ungleich

Grüße
bastla
DerKleba
DerKleba 23.05.2007 um 16:29:46 Uhr
Goto Top
Hey bastla!

Danke erstmal für die Antwort. Werd es gleich ausprobieren. Aber kannst du mir auch erklären wie das funktioniert. Ist ja für mich kein richtiges lernen sonst und das Verständnis dafür fehlt.

Vielen Dank nochmal

DerKleba
Biber
Biber 23.05.2007 um 16:42:13 Uhr
Goto Top
Moin DuKleba,

das Erklären von bastla will und kann ich nicht vorwegnehmen, aber:
Zum Verständnis der Auflösungsmöglichkeiten von Datei-Informationen hätte ich eine sehr schöne Site-Empfehlung:

Auf wikibooks.org Batch-Programmierung Beispiele ganz unten der letzte Topic: "Dateiinformationen anzeigen"
Dieses Batch-Skript zeigt Informationen über die Datei, die als Parameter übergeben wird, an. (so ist das Starten des Skript per Drag&Drop möglich)...



Ist für das Verständnis der Mimik jedenfalls meine Empfehlung.

Wenn Du dann bastlas Schnipsel verstanden hast, wäre eine etwas sportlichere Variante als Batch folgender Oneliner:
::-----snipp CompSize.bat --- MfG Biber 2007
@for %%i in (%1) do @for %%j in (%2) do @for %%x in (LSS EQU GTR) do @cmd /c if %%~zi %%x %%~zj @echo %%i [%%~zi]  %%x %%j [%%~zj]
::-----snapp CompSize.bat --- MfG Biber 2007
(nur eine Zeile zwischen "snipp" und "snapp"!)

Output beim Aufruf am CMD-Prompt z.B:
(=16:35:07  D:\temp=)
>e:\administrator\CompSize.bat d:\temp\modules.txt "y:\Eigene Dateien\*.bat"  
d:\temp\modules.txt [4560]  GTR y:\Eigene Dateien\aali.bat [305]
d:\temp\modules.txt [4560]  GTR y:\Eigene Dateien\xlstest.bat [728]

Gruss
Biber
bastla
bastla 23.05.2007 um 16:48:06 Uhr
Goto Top
Hallo DerKleba!

Freut mich, dass Du etwas lernen willst. face-smile

Am Besten fängst Du bei der Hilfe zu "for" an:
for /?
Dort wird auch die Schreibweise %%~zi erklärt.

Das zweite Prozentzeichen ist übrigens dann erforderlich, wenn Du die Variable %i innerhalb einer Batch-Datei verwendest - direkt an der Befehlszeile brauchst Du nur ein Prozentzeichen.

Und vielleicht auch noch zu:

"goto :eof" beendet eine Batchdatei oder ein Batch-Unterprogramm.

@Biber: Nur keine unnötige Zurückhaltung beim "Vorwegnehmen" ... face-wink

Grüße
bastla
DerKleba
DerKleba 23.05.2007 um 16:54:18 Uhr
Goto Top
Hey Biber, hey bastla

danke euch beiden für die Tipps. Gibt es vllt. speziell eine Auflistung für Parameter und/oder Variablen in der ich nachlesen kann was genau was bedeutet. Wie z.B. das "%%i" oder was du auch schon erwähntest das ":eof".

Danke nochmal!
Biber
Biber 23.05.2007 um 19:08:24 Uhr
Goto Top
Moin DuKleba,
Gibt es vllt. speziell eine Auflistung für Parameter und/oder Variablen
in der ich nachlesen kann was genau was bedeutet.
An Deinem Rechner "Start"->"Hilfe und Support": suche "Kommandozeilenreferenz"
Oder am CMD-Prompt: Help
Wie z.B. das "%%i" oder was du auch schon erwähntest das ":eof".
Wie bastla schon geschrieben hat: For /? (und goto /?).
Danke nochmal!
Jederzeit gern wieder.

Gruss
Biber