lukyluky
Goto Top

Bestimmt Zeile aus einer ini per VBS Script überpruefen

Hallo zusammen,

ich hoffe Ihr könnt mir helfen.

Ich hab ein kleines Script geschrieben welches eine Installationsdatei startet.
Dabei ist mir aufgefallen das ich zuvor aber noch eine INF überprüfen müsste.

INF sieht wie folgt aus:

[Version]
Signatur= abc
Class=USB
DriverVer=05/20/2011, 7.5.7.0

Für mich ist der Eintrag DriverVer interesant.
Besonders die 7.5.x.x

Kann man irgentwie die Versionsnummer überprüfen und wenn 7.5.x.x drin steht dann soll er das Script "a" starten und wenn Version 7.4.x.x soll er Script "b" starten.

Vielen Dank für eure Hilfe

Content-ID: 201262

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

Ausgedruckt am: 15.11.2024 um 07:11 Uhr

colinardo
colinardo 05.02.2013 aktualisiert um 13:04:49 Uhr
Goto Top
Hallo lukyluky,

das sollte dir helfen
In Zeile 2 den Pfad zur INF-Datei angeben und weiter unten in der Select-Anweisung die für die jeweilige Versionsnummer passende Anweisung einfügen...

set objFS = CreateObject("Scripting.FileSystemObject")  
set f = objFS.OpenTextFile("c:\test.inf",1,false)  

Do While f.AtEndOfStream <> True
	strline = f.ReadLine
	if Left(strline,9) = "DriverVer" then  
		Set myRegExp = New RegExp
		myRegExp.IgnoreCase = True
		myRegExp.Pattern = "(\d\.(\d)\.\d\.\d"  
		found = myRegExp.Test(strline)
		if found then
			Set Matches = myRegExp.Execute(strline)
			Select Case Matches(0).SubMatches(0)
				Case "7.4"  
					wscript.echo "Version 4"  
                                        'Mach was bei Version 4  
				Case "7.5"  
					wscript.echo "Version 5"  
                                        'Mach was bei Version 5  
			End Select
			Exit do
		end if
	end if
Loop

Grüße Uwe
lukyluky
lukyluky 05.02.2013 um 12:50:48 Uhr
Goto Top
Vielen Dank erstmal.
Entschuldige bitte meine blöden Fragen.

Habe das Script ausprobiert, es kommt auch kein Fehler aber es wird nichts ausgeben.
Habe in Zeile 2 den Vollständigen Pfad angegeben.
Muss man in Zeile 6 hinter strline die Zeilen Nummer angeben in der das Script schauen soll?
Zeile 6: "DriveVer" bleibt erhalten? Sehe ich das richtig das er links überprüft ob DriveVer steht?
Gebe ich im Bereich Case an wonach er suchen soll? Also Case 7.5?

Case 7.4
WshShell.Run "cscript.exe c:\temp\7_4.vbs", 1, True
Case 7.5
WshShell.Run "cscript.exe c:\temp\7_5.vbs", 1, True

Danke
colinardo
colinardo 05.02.2013 um 13:02:33 Uhr
Goto Top
Zuerst überprüft das Script alle Zeilen ob sie mit "DriverVer" beginnen. Wenn ja dann extrahiert es mit einem RegularExpression-Objekt die Versionsnummer : "7.5.5.0". Mit der Klammer in der RegEx-Pattern in Zeile 9 legst du den Submatch fest mit dem der Vergleich der Versionsnummer stattfindet.
Für deinen Fall musst du die Zeile 9 so abändern:
myRegExp.Pattern = "(\d\.\d)\.\d\.\d"