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, 5276 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 --- MfG 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 --- MfG 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
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Batch & Shell
gelöst 2 große TXT Dateien vergleichen und Unterschiede in andere Datei schreiben (6)

Frage von sid.pdm zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Änderungsdatum von Dateien vergleichen und ältere löschen (10)

Frage von 129528 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien mit vorgegebener Größe erstellbar? (3)

Frage von Stefan007 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (17)

Frage von Driphex zum Thema Exchange Server ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...