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

über Batch Versionen vergleichen ggf. aktualisieren

Frage Entwicklung Batch & Shell

Mitglied: Afk009

Afk009 (Level 1) - Jetzt verbinden

02.07.2008, aktualisiert 11:52 Uhr, 4307 Aufrufe, 6 Kommentare

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
Mitglied: bastla
02.07.2008 um 11:09 Uhr
Hallo Afk009 und willkommen im Forum!

Die Umsetzung könnte etwa so aussehen:
01.
@echo off & setlocal 
02.
set "Quelle=\\ueeb1p001\Projektverfolgung" 
03.
set "mde=Prio.mde" 
04.
set "ini=XXX.ini" 
05.
set "Ziel=H:" 
06.
set "Prog=C:\Programme\Microsoft Office\Office10\MSACCESS.EXE" 
07.
 
08.
if not exist "%Ziel%\%ini%" goto :Kopieren 
09.
if not exist "%Ziel%\%mde%" goto :Kopieren 
10.
 
11.
for /f "usebackq tokens=2" %%i in ("%Quelle%\%ini%") do set "QVers=%%i" 
12.
for /f "usebackq tokens=2" %%i in ("%Ziel%\%ini%") do set "ZVers=%%i" 
13.
if not defined ZVers goto :Kopieren 
14.
if %ZVers% geq %QVers% goto :Starten 
15.
 
16.
:Kopieren 
17.
copy "%Quelle%\%ini%" "%Ziel%\%ini%">nul 
18.
copy "%Quelle%\%mde%" "%Ziel%\%mde%">nul 
19.
 
20.
:Starten 
21.
start "%Prog%" "%Ziel%\%mde%" /runtime
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:
01.
start "" "%Ziel%\%mde%" /runtime
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]
Bitte warten ..
Mitglied: 60730
02.07.2008 um 11:11 Uhr
Moin,

01.
 
02.
Rem zum Test immer NICHT @echo off 
03.
if not exist H:\Prio.mde>nul  copy \\ueeb1p001\Projektverfolgung\Prio.mde H:\Prio.mde /y 
04.
if not exist H:\xxx.ini>nul  copy \\ueeb1p001\Projektverfolgung\H:\xxx.ini H:\xxx.ini /y 
05.
 
06.
fc /b H:\xxx.ini \\ueeb1p001\Projektverfolgung\xxx.ini 
07.
if %errorlevel% ==1 goto import 
08.
if %errorlevel% ==0 goto end 
09.
:import 
10.
copy \\ueeb1p001\Projektverfolgung\xxx.ini H:\xxx.ini 
11.
 
12.
:end 
13.
start "C:\Programme\Microsoft Office\Office10\MSACCESS.EXE" "H:\Prio.mde" /runtime 
Bitte warten ..
Mitglied: Afk009
02.07.2008 um 11:32 Uhr
@bastla.... danke für die Antwort. Bei deiner Version werden nur dann die Daten kopiert wenn sie local nicht vorhanden sind. Sobald die 2 Dateien vorhanden sind, wird die mde nicht gestartet.

@Timo.... dein Version funktioniert einwandfrei, ABER... ich sehe nirgendswo den tatsächlichen vergleich der Verion der ini datei.

also hab local die Vers. der Ini 1.1.2. Wenn ich auf dem Server die Ini öffne und Vers. von 1.1.2 auf 1.1.3 erhöhe und die ini abspeichere und dann die Batch starte passiert nichts. Der Code erkennt , dass nur die ini exestiert und startet normal, vergleicht aber nicht den Inhalt der Inis
Bitte warten ..
Mitglied: bastla
02.07.2008 um 11:37 Uhr
Hallo Afk009!

Ich hatte noch ein wenig mit "start" herumgespielt (siehe Ergänzung oben) - versuch es noch einmal mit der aktuellen Fassung ...

... wobei allerdings auch mit der alten Version schon kopiert worden sein sollte (zumindest, nachdem in Zeile 4 "ser" durch "set" ersetzt wurde ).

Grüße
bastla
Bitte warten ..
Mitglied: 60730
02.07.2008 um 11:41 Uhr
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.
Bitte warten ..
Mitglied: Afk009
02.07.2008 um 11:52 Uhr
Genial..... klappt jetzt einwandfrei......
Danke Jungs, Ihr seit spitze.

Gruß,
Iggy
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst (Batch) Nummern vergleichen (3)

Frage von clragon zum Thema Batch & Shell ...

VB for Applications
gelöst Excel VBA Werte von 2 verschiedenen Sheets vergleichen und aktualisieren (4)

Frage von drimrim zum Thema VB for Applications ...

Batch & Shell
gelöst Textdateien vergleichen BATCH (2)

Frage von FeudelFred 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 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...