über Batch Versionen vergleichen ggf. aktualisieren
Hallo Leute,
Kann mir jemand helfen mit einer Batch Datei?
Hab diese jetzt so, dass die beim Starten einfach die MDE Datei vom Server auf Local kopiert und dann Local gestartet.
@echo off
copy \\ueeb1p001\Projektverfolgung\Prio.mde H:\Prio.mde /y
start "C:\Programme\Microsoft Office\Office10\MSACCESS.EXE" "H:\Prio.mde" /runtime
jetzt würde ich gern so haben, dass diese Datei beim Starten nicht gleich kopiert wird, sondern erst die Versionsnummer der XXX.ini Datei überprüft?
Folgendeweise habe ich im Sinn.
@echo off
Prüfen ob Datei XXX.Ini local exestiert H:\XXX.ini
Prüfen ob Datei H:\Prio.mde local exestiert
Wenn nicht, dann beide Dateien vom Server kopieren
\\Test\Projektverfolgung\
Wenn beide Dateien local exestieren, dann die Versionen der ini Dateien miteinander vergleichen (Dateiinhalt Vers. 1.0.0) und wenn die ini auf dem Server höher ist, als local dann die ini und mde Dateien vom Server laden und mit localen ersetzten.
Danke im Voraus,
Gruß
Iggy
Kann mir jemand helfen mit einer Batch Datei?
Hab diese jetzt so, dass die beim Starten einfach die MDE Datei vom Server auf Local kopiert und dann Local gestartet.
@echo off
copy \\ueeb1p001\Projektverfolgung\Prio.mde H:\Prio.mde /y
start "C:\Programme\Microsoft Office\Office10\MSACCESS.EXE" "H:\Prio.mde" /runtime
jetzt würde ich gern so haben, dass diese Datei beim Starten nicht gleich kopiert wird, sondern erst die Versionsnummer der XXX.ini Datei überprüft?
Folgendeweise habe ich im Sinn.
@echo off
Prüfen ob Datei XXX.Ini local exestiert H:\XXX.ini
Prüfen ob Datei H:\Prio.mde local exestiert
Wenn nicht, dann beide Dateien vom Server kopieren
\\Test\Projektverfolgung\
Wenn beide Dateien local exestieren, dann die Versionen der ini Dateien miteinander vergleichen (Dateiinhalt Vers. 1.0.0) und wenn die ini auf dem Server höher ist, als local dann die ini und mde Dateien vom Server laden und mit localen ersetzten.
Danke im Voraus,
Gruß
Iggy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 91104
Url: https://administrator.de/forum/ueber-batch-versionen-vergleichen-ggf-aktualisieren-91104.html
Ausgedruckt am: 21.05.2025 um 20:05 Uhr
6 Kommentare
Neuester Kommentar
Hallo Afk009 und willkommen im Forum!
Die Umsetzung könnte etwa so aussehen:
Noch als Anmerkung zum "start": Da der erste unter Anführungszeichen stehende Parameter als Fenstertitel interpretiert wird, aber andererseits anhand des Dateityps der übergebenen "Prio.mde" erkannt wird, dass Access gestartet werden soll, könnte die Zeile auch so aussehen:
Mit anderen Worten: Die Angabe des Pfades zur "MSACCESS.EXE" ist überflüssig (schadet aber nicht weiter, und stört auch gar nicht, wenn vielleicht Access XP durch eine neuere Version ersetzt wird).
Grüße
bastla
[Edit] Parameter für "start" angepasst; fehlerhaftes "ser" durch "set" ersetzt [/Edit]
[Edit2] "copy"-Meldungen mit ">nul" unterdrückt [/Edit2]
Die Umsetzung könnte etwa so aussehen:
@echo off & setlocal
set "Quelle=\\ueeb1p001\Projektverfolgung"
set "mde=Prio.mde"
set "ini=XXX.ini"
set "Ziel=H:"
set "Prog=C:\Programme\Microsoft Office\Office10\MSACCESS.EXE"
if not exist "%Ziel%\%ini%" goto :Kopieren
if not exist "%Ziel%\%mde%" goto :Kopieren
for /f "usebackq tokens=2" %%i in ("%Quelle%\%ini%") do set "QVers=%%i"
for /f "usebackq tokens=2" %%i in ("%Ziel%\%ini%") do set "ZVers=%%i"
if not defined ZVers goto :Kopieren
if %ZVers% geq %QVers% goto :Starten
:Kopieren
copy "%Quelle%\%ini%" "%Ziel%\%ini%">nul
copy "%Quelle%\%mde%" "%Ziel%\%mde%">nul
:Starten
start "%Prog%" "%Ziel%\%mde%" /runtime
start "" "%Ziel%\%mde%" /runtime
Grüße
bastla
[Edit] Parameter für "start" angepasst; fehlerhaftes "ser" durch "set" ersetzt [/Edit]
[Edit2] "copy"-Meldungen mit ">nul" unterdrückt [/Edit2]

Moin,
Rem zum Test immer NICHT @echo off
if not exist H:\Prio.mde>nul copy \\ueeb1p001\Projektverfolgung\Prio.mde H:\Prio.mde /y
if not exist H:\xxx.ini>nul copy \\ueeb1p001\Projektverfolgung\H:\xxx.ini H:\xxx.ini /y
fc /b H:\xxx.ini \\ueeb1p001\Projektverfolgung\xxx.ini
if %errorlevel% ==1 goto import
if %errorlevel% ==0 goto end
:import
copy \\ueeb1p001\Projektverfolgung\xxx.ini H:\xxx.ini
:end
start "C:\Programme\Microsoft Office\Office10\MSACCESS.EXE" "H:\Prio.mde" /runtime

ABER... ich sehe nirgendswo den tatsächlichen vergleich der Verion der ini datei.
Der vergleich ist in Zeile 06 , 07 & 08
Wenn es nur eine Ini ist - kannst du auch fc /l - anstatt fc /b schreiben.