Top-Themen

Aktuelle Themen (A bis Z)

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

Vergleichen von Dateigrößen per Batch

Frage Entwicklung Batch & Shell

Mitglied: BKAMk2

BKAMk2 (Level 1) - Jetzt verbinden

11.09.2007, aktualisiert 12.09.2007, 4910 Aufrufe, 9 Kommentare

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:

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
Mitglied: miniversum
11.09.2007 um 18:28 Uhr
Mal ungetestet und nur für eine der Drei paare so (die andern gehen dan entsprechend):
@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
)

miniversum
Bitte warten ..
Mitglied: BKAMk2
12.09.2007 um 08:15 Uhr
Danke schonmal miniversum.

Leider treten bei mir 2 Fehler auf.

1. Die folgende Verwendung des Pfadparameters zur Ersetzung eines Batchparameters ist ungültig: %~zl

2. Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig sind.
Syntaxfehler.

Was soll ich machen? Wie kann ich die Fehler beseitigen? Und warum werden keine Netzlaufwerke erkannt?!?

Danke
Bitte warten ..
Mitglied: Biber
12.09.2007 um 08:34 Uhr
Moin BKAMk2,

ändere mal bitte die beiden SET-Zuweisungen, z.B.
....set localsize=%~zl
...so ab, dass vor der dynamischen Variablen ZWEI Prozentzeichen stehen. Also:
--->....set localsize=%%~zl

Dann passt es besser.

Grüße
Biber
Bitte warten ..
Mitglied: BKAMk2
12.09.2007 um 08:55 Uhr
Danke Biber.

Der Syntaxfehler ist draussen.
Bleiben nur noch die anderen =)

Also ich poste mal meine batch Datei und die Ausgabe:
01.
>echo 
02.
 
03.
 
04.
>SET localdir=C:\Updates 
05.
>SET serverdir=\\130.30.2.21\buhralex\wpkg 
06.
07.
>FOR /F "delims= " %%l in ('dir /b "%localdir%\profiles.xml"') do set localsize=%%~zl 
08.
>FOR /F "delims= " %%s in ('dir /b "%serverdir%\profiles.xml"') do set serversize=%%~zs 
09.
>if %serversize% gtr %slocalsize%( 
10.
11.
>echo Bitte starten Sie das WPKG 
12.
>) 
13.
14.
>else ( 
15.
16.
>echo Keine neuen Updates. 
17.
>) 
18.
 
19.
Ausgabe: 
20.
 
21.
>H:\>Dateivergleich.bat 
22.
23.
>H:\>echo 
24.
>ECHO ist eingeschaltet (ON). 
25.
26.
>H:\>SET localdir=C:\Updates 
27.
28.
>H:\>SET serverdir=\\130.30.2.21\buhralex\wpkg 
29.
30.
>H:\>FOR /F "delims= " %l in ('dir /b "C:\Updates\profiles.xml"') do set localsiz 
31.
>e=%~zl 
32.
33.
>H:\>set localsize= 
34.
35.
>H:\>FOR /F "delims= " %s in ('dir /b "\\130.30.2.21\buhralex\wpkg\profiles.xml"' 
36.
>) do set serversize=%~zs 
37.
38.
>H:\>set serversize= 
39.
>"(" ist syntaktisch an dieser Stelle nicht verarbeitbar. 
40.
41.
>H:\>if  gtr (
Wo liegt jetzt das Problem??


[Edit Biber] Als < code > formatiert. [/Edit]
Bitte warten ..
Mitglied: Biber
12.09.2007 um 09:06 Uhr
Moin BKAMk2,

soweit ich es lesen kann..

--->Falsch : ...if %serversize% gtr %slocalsize%(

--->Richtiger: ...if %serversize% gtr %localsize% (

Bitte nutze beim Posten die <code>-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
Bitte warten ..
Mitglied: BKAMk2
12.09.2007 um 09:27 Uhr
Mach ich das nächste mal.

Wusste nicht wie^^

Hab deine Vorschläge befolgt hab aber immer noch den Fehler:

01.
H:\>set serversize= 
02.
"(" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Bitte warten ..
Mitglied: Biber
12.09.2007 um 10:30 Uhr
Moin BKAMk2,

bitte poste doch noch mal die komplette Batchdatei in einem
01.
-Tag. 
02.
 
03.
Eventuell hast Du hier in miniversums Skizze: 
04.
<code> 
05.
if %localsize% gtr %serversize% ( 
06.
echo locale Datei ist groesser 
07.
) else ( 
08.
echo Datei auf Server ist groesser 
09.
)
... 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 warten ..
Mitglied: BKAMk2
12.09.2007 um 10:43 Uhr
habe alles nochmal auf leerzeilen untersucht.
Sind keine da.

Wenn ich den Befehl:

01.
In letzterem Fall würde ein Syntaxfehler auftreten, den Du vermeiden kannst durch: 
02.
---> if defined %localsize% if defined %serversize% if %localsize% gtr %serversize% ( ...
eingebe gibt er mir beide Echo's nacheinander aus.

Hier nochmal die Batch:

01.
echo 
02.
SET localdir=C:\Updates 
03.
SET serverdir=\\130.30.2.21\buhralex\wpkg 
04.
FOR %%l in ('"%localdir%\packages.xml") DO set localsize=%%~zl 
05.
FOR %%s in ('"%serverdir%\packages.xml") DO set serversize=%%~zs 
06.
if %localsize% gtr %serversize% ( 
07.
echo Bitte starten Sie das WPKG 
08.
) else ( 
09.
echo Keine neuen Updates 
10.
)

[Edit BKAMk2] Funktioniert jetzt. Hab die hochkommatra in den Zeilen:

01.
FOR %%l in ('"%localdir%\packages.xml") DO set localsize=%%~zl 
02.
FOR %%s in ('"%serverdir%\packages.xml") DO set serversize=%%~zs
rausgenommen.

Bin gerade dabei mit Javascript was zu schreiben damit dem User nachher eine Bildschirm Meldung ausgegeben werden kann.

Vielen Dank für eure Hilfe.

BKAMk2
Bitte warten ..
Mitglied: Biber
12.09.2007 um 17:52 Uhr
Moin BKAMk2,

sorry, tut mir Leid mit meinem mitge-Copy&Paste-ten einfachen Hochkomma.

Freut mich aber, dass Du es zum Fliegen gebracht hast.

Ich schließe mal diesen Beitrag, denn das eigentliche Anliegen scheint jetzt gelöst zu zu sein.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch vergleich von zwei dateien
gelöst Frage von realdavegerBatch & Shell6 Kommentare

Hallo, nach Jahrelangem zugucken, habe ich jetzt schlussendlich eine Frage welche ich selbst stelle. Ich versuche 2 zeiten aus ...

Batch & Shell
Textdateien vergleichen BATCH
gelöst Frage von FeudelFredBatch & Shell2 Kommentare

Moin Moin, ich bin komplett neu im Forum und habe auch keine sonderlich großen Erfahrungen mit Foren. Habe eine ...

Windows Tools
Batch Verzeichnis vergleichen, in einer anderes kopieren
Frage von cappu25Windows Tools11 Kommentare

Halloo an alle, ich habe jetzt schon verdammt lange rumprobiert und gegooglet aber ich bekomme keine Lösung hin. Folgendes: ...

Batch & Shell
Batch Vergleichen von Dateien
gelöst Frage von BlaberBatch & Shell2 Kommentare

Hallo Leute, ich habe ein kleines Problem bei einer Batch-Datei. In dieser versuche ich zwei Text-Dateien miteinander zu vergleichen, ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...