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

Mitglied: BKAMk2

BKAMk2 (Level 1) - Jetzt verbinden

11.09.2007, aktualisiert 12.09.2007, 4974 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

Zahlen aus Textdatei in Batch vergleichen

gelöst Frage von yspke24Batch & Shell7 Kommentare

Hi, ich habe schon stundenlang im Internet gesucht, konnte aber nichts Passendes finden. Ich habe eine Textdatei "time.log". In ...

Batch & Shell

Batch Ordner und Unterordner vergleichen

gelöst Frage von SPSmanBatch & Shell2 Kommentare

Hallo an alle, Ich suche nach einer Batchfunktion die mir Ordner und Unterordner Vergleicht und bei Ungleichheit das Archivbit ...

Batch & Shell

Batch vergleiche Dateien mit Zeitstempel

gelöst Frage von Streuner1Batch & Shell5 Kommentare

Hallo, ich möchte mit einer batch in einem Ordner Dateien mit einem Zeitstempel suchen, vergleichen, kopieren und löschen. Möglichkeiten: ...

Neue Wissensbeiträge
Drucker und Scanner
HP-MF-Drucker per Fax angreifbsr
Information von Lochkartenstanzer vor 1 TagDrucker und Scanner2 Kommentare

Endlich eine sinnvolle Verwendung für Faxe: Damit kann man offensichtlich den Drucker übernehmen. lks

Router & Routing

Das pfSense Buch ist jetzt für jeden kostenlos zu beziehen

Tipp von magicteddy vor 2 TagenRouter & Routing2 Kommentare

Bisher war das Buch nur für zahlende Unterstützer verfügbar, jetzt steht für Jedermann kostenlos zur Verfügung. Siehe auch The ...

Firewall

Möglicherweise neue Sicherheitslücke in Mikrotik-Firmware

Information von LordGurke vor 4 TagenFirewall3 Kommentare

Hallo zusammen, vor ein paar Monaten gab es ja bereits eine Sicherheitslücke in der Firmware von Mikrotik-Routern, über welche ...

Erkennung und -Abwehr
Rechner hacken mit Cortana, auch Remote
Information von Lochkartenstanzer vor 5 TagenErkennung und -Abwehr3 Kommentare

heise berichtet über den Vortrag von der Blackhat Open Sesame: Picking Locks with Cortana. Einige Fehler sind schon gefixt, ...

Heiß diskutierte Inhalte
Firewall
PfSense blockt Webseite nicht
Frage von matze2090Firewall27 Kommentare

Hallo, ich habe bei mir pfSense laufen. Das erste ist was ich machen möchte eine Webseite zu blocken. Könnt ...

Windows 10
WIN 10 1803 - LTE Stick kein Internetzugriff
Frage von killtecWindows 1023 Kommentare

Hallo, ich habe mit einem Windows 10 1803 Probleme mit einem LTE-Stick. Das gleiche Problem ist bei mehreren Rechnern ...

CPU, RAM, Mainboards
Xeon E5620: noch schnell genug?
Frage von ahussainCPU, RAM, Mainboards19 Kommentare

Hallo allerseits, ich habe die Möglichkeit, aus Restbeständen einen Tower mit Xeon E5620 CPU und 24 GB RAM zu ...

Datenbanken
MySQL Datenbank Import Aufgabe für mehrere .csv dateien
Frage von Marcel1989Datenbanken18 Kommentare

Hi, ich komm nicht weiter. Ich hab auf einem Windows Server 2012 r2 eine MariaDB/MySQL laufen. Nun soll diese ...