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-Key: 59611

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

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

Member: bastla
bastla May 23, 2007 at 12:00:17 (UTC)
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
Member: DerKleba
DerKleba May 23, 2007 at 14:29:46 (UTC)
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
Member: Biber
Biber May 23, 2007 at 14:42:13 (UTC)
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
Member: bastla
bastla May 23, 2007 at 14:48:06 (UTC)
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
Member: DerKleba
DerKleba May 23, 2007 at 14:54:18 (UTC)
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!
Member: Biber
Biber May 23, 2007 at 17:08:24 (UTC)
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