48046
Goto Top

Unterschiede der Registry von Win98 und XP

Hallo Leute !


Habe nun meine Batchdateien soweit fertig, und es funktioniert (eingeschränkt).
Eingeschränkt deshalb, da meine Batch einwandfrei auf XP-Rechnern läuft. Bei Win98 (andere Betriebssysteme konnte ich noch nicht testen) bekomme ich eine Fehlermeldung nach der anderen.

Bin dem ganzen dann auf den Grund gegangen und die Ursache hierfür ist der Header der Registry.

Beispiel der Kopfzeile in meiner Batch für XP:
echo Windows Registry Editor Version 5.00 > c:\install_dir.reg
regedit /s c:\install_dir.reg

Windows98 stört sich leider an dieser Zeile und möchte stattdessen dies haben:
echo REGEDIT4 > c:\install_dir.reg
regedit /s c:\install_dir.reg

Ich habe mal ausprobiert, ob nur der Begriff "REGEDIT" für alle Systeme reichen würde, aber leider nicht. WIN98 & XP tun zwar dann so, als ob sie es in die Registry eintragen, aber in Wirklichkeit geschieht es nicht.


Meine Frage ist nun:

1.) Gibt es eine Möglichkeit dazwischen zu vermitteln, also so, dass beide Systeme (oder auch andere Systeme) nicht bei der Kopfzeile meckern und alles korrekt eintragen?

2.) Oder aber eine Art Erkennung der Systeme, dann könnte ich ja beide Registry-Varianten in die Batch schreiben.


Gruß ELMI

Content-Key: 61860

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: miniversum
miniversum Jun 20, 2007 at 09:47:31 (UTC)
Goto Top
Du kannst die Betriebssysteme unterscheiden und entsprechen eine If Abfage machen.
es Gibt die Variable %OS% inder bei Windows NT/2000/XP/2003/Vista dann "Windows_NT" steht.
Also könntest du es so machen:
if /i "%OS%" == "Windows_NT" (
echo Windows Registry Editor Version 5.00 > c:\install_dir.reg
) else (
echo REGEDIT4 > c:\install_dir.reg
)
regedit /s c:\install_dir.reg

miniversum
Mitglied: 48046
48046 Jun 20, 2007 at 10:20:10 (UTC)
Goto Top
@miniversum

Hee, das war aber schnell und wäre auch noch eine akzeptable Lösungsvariante für mich. face-smile


Da ich im Moment nicht die Möglichkeit habe mir die Kopfzeilen anderer Exportierter Registry-Schlüssel zu besorgen, wäre es echt nett, wenn mir hier einige noch kurz die Header folgender Betriebssysteme posten könnten:


95
WIN98 (vorhanden)
ME
Windows2000
NT
XP (vorhanden)
VISTA


Dann könnte ich diese gleich alle in die Batch aufnehmen.

P.S. Was bedeutet der Parameter /i eigentlich in der IF-Abfrage ?

Gruß ELMI
Member: bastla
bastla Jun 20, 2007 at 10:25:04 (UTC)
Goto Top
Hallo Elmi55!

Also zumindest XP (eben nochmal getestet) verträgt ein "REGEDIT4" im Header.

Grüße
bastla
Mitglied: 48046
48046 Jun 20, 2007 at 10:33:51 (UTC)
Goto Top
Hallo bastla (mein alter Helfer face-smile!


Ja das mag sein, das hab ich noch nicht getestet. Aber wenn ich schon eine Abfrage mache, dann kann ich ja auch gleich die richtige Variante für das jeweilige Betriebssystem mitliefern.


Und, woher weiß ich die genauen Abfrage-Kennungen für die jeweiligen Betriebssysteme. miniversum hat ja schon für NT die Abfrage "Windows_NT" gepostet. Nur woher weiß ich die korrekte Bezeichnung für andere Systeme?

Gruß ELMI
Member: bastla
bastla Jun 20, 2007 at 10:42:32 (UTC)
Goto Top
Hallo Elmi55!

Ich hatte gemeint, dass die "regedit"-Versionen abwärtskompatibel sein sollten, also eine ".reg"-Datei mit dem Header "REGEDIT4" für alle Systeme von W98 aufwärts verwendbar sein könnte (inzwischen zB auch für eine W2000-Workstation erfolgreich getestet). Nur hinsichtlich NT traue ich mir keine Ausage zu machen.

Grüße
bastla
Mitglied: 48046
48046 Jun 20, 2007 at 10:45:03 (UTC)
Goto Top
Es gibt die Variable %OS% inder bei Windows
NT/2000/XP/2003/Vista dann
"Windows_NT" steht.
Also könntest du es so machen:


Nachtrag. Sorry, hatte mal anscheinend wieder nur "halb" gelesen. Für "Windows_NT" stehen also folgende Systeme: NT/2000/XP/2003/Vista

Bliebe im groben also nur noch 95/98/ME und dabei gehe ich mal davon aus, das dies dort immer REGEDIT4 lautet, oder!?

Gruß ELMI
Mitglied: 48046
48046 Jun 20, 2007 at 10:47:54 (UTC)
Goto Top
@bastla

Hmmm....guter Gedanke, wenn das stimmt, bräuchte ich ja eigentlich gar keine Abfrage zu machen.

Leider hab ich hier nur WIN98 & XP, kann demnach nichts weiter testen. Jedenfalls ein kleiner Hoffnungsschimmer face-smile


P.S. Stimmt, mit XP jetzt auch getestet und er nimmt "REGEDIT4" anstandslos. Wenn das auch mit VISTA etc. klappt bräuchte ich ja wirklich nicht viel zu ändern.

Gruß ELMI
Mitglied: 48046
48046 Jun 20, 2007 at 11:38:31 (UTC)
Goto Top
Also nach allen Tests lasse ich die anderen "Projekte" wie WIN98 etc. sein. Denn ich stolpere sonst von einem Problem ins nächste. Jetzt wo die Registry-Eintragungen funktionieren, das nächste Problem:

c:\tcmdr700.exe
del c:\tcmdr700.exe
start c:\Programme\TotalCommander\totalcmd.exe

WIN98:
Bei der ersten Zeile fängt er an, das Setup zu installieren, macht aber dann schon weiter und möchte sie auch sofort löschen (was ja nicht geht, da das Setup noch am installieren ist).

Bei XP funktioniert das problemlos, denn wenn kein "start" vor der Datei steht, sollte er ja warten bis die Anwendung beendet ist und erst dann zur nächsten Zeile gehen. Wie gesagt, WIN98 wartet nicht.......auch wenn ich es mit

start c:\tcmdr700.exe /w

probiere, will er schon die nächste Zeile in der Batch ausführen.


Tja, man könnte jetzt eine Schleife einbauen, oder per Ping eine Zeit definieren, oder es mit einer wait.exe ausprobieren. Das alles ist gut und schön, nur eine richtige Lösung ist das nicht über die Zeitkomponennte, denn je nach Schnelligkeit (oder Langsamkeit) eines Rechners haut das dann auch wieder nicht hin.
Es sei denn, es fällt noch jemand von Euch ein anderer Weg ein, ansonsten bleibt mir nichts anderes übrig als es nur auf XP auszulegen, schade face-sad

Gruß ELMI