mtb4ever
Goto Top

Mit Batch in registry überprüfen ob ein programm vorhanden ist, wenn nicht das programm installieren

Hallo,

also ich hae folgendes vor

1. möchte ich überprüfen ob framework 2.0 installiert is (egal welche version hauptsache 2.0) un wenn nicht soll es installiert werden
2. möchte ich überprüfen ob dao 3.5 installiert is un wenn nicht soll es installiert werden

soll aber in registry überprüft werden, da man ja bei framework 2.0 zumindest net weiß wo eine datei liegt die man überprüfen kann (ich mein weil ja ordner z.b. Microsoft.NET\Framework\v2.0.50727 heisen kann un wenn ne andere v2.XX nummer da steht is klar das datei net findet)

ist das möglich mit hilfe einer batch datei ?

MfG

MTB

Content-ID: 66457

Url: https://administrator.de/contentid/66457

Printed on: October 10, 2024 at 04:10 o'clock

Karo
Karo Aug 17, 2007 at 10:01:24 (UTC)
Goto Top
Hi,

gehe auf
http://www.tmgdevelopment.co.uk/versioncheck.htm
in der Zip-Datei ist auch eine *.com die für die Kommandozeile ist. Damit könntest Du über VersionCheck.com|find /I "<STRING>" ne Batch basteln mit ERRORLEVEL und anschliessendem Ausführen der Installation. Das Teil zeigt Dir auch die ADO und IE Version an.

Weitere Möglichkeit über Registry wäre REG QUERY .

bye

Karo
MTB4ever
MTB4ever Aug 17, 2007 at 10:04:12 (UTC)
Goto Top
so wirklich nen plan von batch datei basteln habe ich (noch) nicht .... könnt mir einer ma bissle helfen un nen paar befehle sagen wie ich das am besten realisieren kann ?
Karo
Karo Aug 17, 2007 at 10:19:05 (UTC)
Goto Top
Hier mal nen Bsp dafür, dass .Net Framework 2 SP1 installiert werden soll, wenn 2.0 installiert ist
Das MSI liegt in diesem Fall unter C:\install\Dotnet20SP1\ (also %systemdrive%\install\Dotnet20SP1\). /qb! ist für eine passive/quit Installation ohne Usereingriff (Dokus zu MSI Parameter sind u.a. im MS Technet zu finden)
Wenn Errorlevel 0, also er hat den String "Version 2.0" gefunden, dann Aufruf des MSI-Paketes. Wenn nicht wäre Errorlevel 1. Du solltest bedenken, das für Installationen Adminrechte vorhanden sein müssen!

VersionCheck.com|find /I "Version 2.0"
if errorlevel 0 start /wait %systemdrive%\install\Dotnet20SP1\NETCFSetupv2.msi /qb!

Beispiel Reg Query
Gesucht wird, ob MDAC 2.80 installiert ist, weenn ja (errorlevel 0) dann installieren
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataAccess /v version|find /I "2.80"
if errorlevel 0 start /wait "%Systemdrive%\install\MDAC\DE\dasetup.exe" /q /n

bye

Karo
MTB4ever
MTB4ever Aug 20, 2007 at 06:27:47 (UTC)
Goto Top
also sp1 möchte ich ja net installen möchte einfach nur testen ob framework 2.0 installiert is un wenn dies nicht der fall is soll es installiert werden!

MDAC brauch ich auch net das 2. prog was ich benötige is dao 3.5 .

MfG

MTB
bastla
bastla Aug 20, 2007 at 09:01:06 (UTC)
Goto Top
Hallo MTB4ever!

... das 2. prog was ich benötige is dao 3.5 .
Dann beschreibe einmal, woran Du erkennst, ob es (nicht) installiert ist, und danach sehen wir uns die handwerkliche Umsetzung an (obwohl - wenn Du es über die Registry feststellen kannst - Karo's Beispiel mit "MDAC 2.80" sich wahrscheinlich sehr leicht auf "DAO 3.5" übertragen lässt) ...

Grüße
bastla
MTB4ever
MTB4ever Aug 20, 2007 at 11:14:09 (UTC)
Goto Top
also folgendes aus der registry habe ich jetzt das exportiert


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DAO.Relation.35]
@="Microsoft DAO 3.51 Object Library Relation"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DAO.Relation.35\CLSID]
@="{00000019-0000-0010-8000-00AA006D2EA4}"


das erste möchte ich nun verwenden um herauszufinden ob dao installiert is... in meiner batch datei steht folgendes:

@echo off

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DAO.Relation.35 /v version|find /I "Microsoft DAO 3.51 Object Library Relation"
if errorlevel 1 call "C:\Dokumente und Einstellungen\user\Desktop\DAO\Daosetup.exe"

pause

wenn ich das ausführe kommt aber folgender fehler:

C:\Dokumente und Einstellungen\user\Desktop\DAO>DAO.bat

Fehler: Der angegebene Registrierungsschlüssel oder Wert konnte nicht gefunden w
erden.
Drücken Sie eine beliebige Taste . . .

er starte dabei auch die .exe, obwohl dao installiert ist.


Kann einer helfen?

MfG

MTB
bastla
bastla Aug 20, 2007 at 11:37:14 (UTC)
Goto Top
Hallo MTB4ever!

Versuch es mal so:
@echo off

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DAO.Relation.35|find /I "Microsoft DAO 3.51 Object Library Relation">nul  
if errorlevel 1 "C:\Dokumente und Einstellungen\user\Desktop\DAO\Daosetup.exe"  

pause
Da es keinen Wert "Version" gibt, entfällt der entsprechende Teil (/v version) der Abfrage.

Die "Daosetup.exe" kannst Du (auch ohne "call") direkt starten. Hinsichtlich des Pfades wäre allerdings zu überlegen, "C:\Dokumente und Einstellungen\user" durch "%userprofile%" zu ersetzen und damit variabler zu machen ...

Grüße
bastla
MTB4ever
MTB4ever Aug 20, 2007 at 11:55:36 (UTC)
Goto Top
danke so funktioniert es....

das mit "%userprofile%" is zwar gute idee aber brauch ich net .... den die setup datein kopiere ich eh vorher mit anderen bat datei in c:\temp un lösche es nach installation wieder face-smile

das ohne call probiere ich mal aus!

trotzdem erstma 1000 dank!

MfG

MTB