Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

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

Frage Entwicklung Batch & Shell

Mitglied: DerKleba

DerKleba (Level 1) - Jetzt verbinden

23.05.2007, aktualisiert 19:08 Uhr, 5274 Aufrufe, 6 Kommentare

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

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

LG
DerKleba
Mitglied: bastla
23.05.2007 um 14:00 Uhr
Hallo DerKleba!

Versuch es einmal so:
01.
@echo off & setlocal 
02.
for %%i in (Datei1.txt) do set S1=%%~zi 
03.
for %%i in (Datei2.txt) do set S2=%%~zi 
04.
if %S1%==%S2% echo Gleich & goto :eof 
05.
echo Ungleich
Grüße
bastla
Bitte warten ..
Mitglied: DerKleba
23.05.2007 um 16:29 Uhr
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
Bitte warten ..
Mitglied: Biber
23.05.2007 um 16:42 Uhr
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:
01.
::-----snipp CompSize.bat --- Mit freundlichen Grüßen Biber 2007 
02.
@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] 
03.
::-----snapp CompSize.bat --- Mit freundlichen Grüßen Biber 2007
(nur eine Zeile zwischen "snipp" und "snapp"!)

Output beim Aufruf am CMD-Prompt z.B:
01.
(=16:35:07  D:\temp=) 
02.
>e:\administrator\CompSize.bat d:\temp\modules.txt "y:\Eigene Dateien\*.bat" 
03.
d:\temp\modules.txt [4560]  GTR y:\Eigene Dateien\aali.bat [305] 
04.
d:\temp\modules.txt [4560]  GTR y:\Eigene Dateien\xlstest.bat [728]
Gruss
Biber
Bitte warten ..
Mitglied: bastla
23.05.2007 um 16:48 Uhr
Hallo DerKleba!

Freut mich, dass Du etwas lernen willst.

Am Besten fängst Du bei der Hilfe zu "for" an:
01.
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:
01.
echo Gleich & goto :eof
Mit "&" kannst Du Befehle verknüpfen. Wenn Du den zweiten Befehl vom Ergebnis des ersten abhängig machen willst, kannst Du "&&" für "erster Befehl ohne Fehler beendet" sowie "||" für "Fehler beim ersten Befehl aufgetreten" verwenden.

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

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

Grüße
bastla
Bitte warten ..
Mitglied: DerKleba
23.05.2007 um 16:54 Uhr
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!
Bitte warten ..
Mitglied: Biber
23.05.2007 um 19:08 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...