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

ExitCode eines .VBS nicht richtig wenn ich es aus einem Batch aufrufe ...

Frage Entwicklung Batch & Shell

Mitglied: lobiwan

lobiwan (Level 1) - Jetzt verbinden

23.07.2009, aktualisiert 16:08 Uhr, 3659 Aufrufe, 2 Kommentare

Also, ich möchte aus einer Batchdatei ein VB-Script aufrufen der nachschaut ob ein PCI-Device vorhanden ist und wenn dann mit einem Exitcode 0 beendet wird sonst 1.

Das Ergebnis möchte ich dann im einer Batchdatei via "If Errorlevel ..." verwerten.
Nun ist das eigenartige, das erst beim zweiten aufruf des Scripts der richtige Exitcode in der Errorlevel Variable steht !?

Vorgehen:
Ich nehme dazu erstmal eine Kommandozeile und rufe mein Script mit:

cscript meinscript.vbs VendorID DeviceID & Echo %Errorlevel%

auf, aber erst ab dem zweiten mal aufrufen kommt die "richtige" Antwort.
Ist wahrscheinlich nur irgendwo ne kleinigkeit aber ich seh die nicht ;-(


Hier mein bisheriger Code ...
01.
Option Explicit 
02.
Dim exitcode 
03.
exitcode=1 
04.
' Check argument count 
05.
If WScript.Arguments.Count < 2 Then 
06.
	MsgBox "Missing Arguments !" & VbCrLf & VbCrLf & Wscript.ScriptName & " VendorID DeviceID" & VbCrLf & VbCrLf & Wscript.ScriptName & " 8086 2592", 16, "Error" 
07.
	exitcode=2 
08.
	Wscript.Quit(exitcode) 
09.
End If 
10.
' Check argument lenght 
11.
If not Len(Wscript.Arguments(0))=4 Then  
12.
	MsgBox " VendorID must be 4 digits !!! ", 16, "Error"	 
13.
	exitcode=2 
14.
	Wscript.Quit(exitcode) 
15.
End If 
16.
If not Len(Wscript.Arguments(1))=4 Then  
17.
	MsgBox " DeviceID must be 4 digits !!! ", 16, "Error" 
18.
	exitcode=2 
19.
	Wscript.Quit(exitcode) 
20.
End If 
21.
 
22.
Dim buses,bus,device,devices,strVendor2Search,strDevice2Search 
23.
Set buses = GetObject("winmgmts:").InstancesOf("Win32_Bus") 
24.
strVendor2Search = "VEN_" & Wscript.Arguments(0) 
25.
strDevice2Search = "DEV_" & Wscript.Arguments(1) 
26.
For Each bus In buses 
27.
    Set devices = GetObject("winmgmts:").ExecQuery ("Associators of {Win32_Bus.DeviceID=""" & bus.DeviceID & """} WHERE AssocClass = Win32_DeviceBus") 
28.
    For Each device In devices 
29.
		If InStr(UCase(device.PnPDeviceID),strVendor2Search) Then 
30.
			If InStr(UCase(device.PnPDeviceID),strDevice2Search) Then 
31.
				WScript.Echo "  ", device.name 
32.
				WScript.Echo vbTab, device.PnPDeviceID 
33.
				WScript.Echo " " 
34.
				exitcode=0 
35.
			End IF 
36.
		End IF 
37.
    Next 
38.
Next  
39.
Wscript.Quit(exitcode)
Mitglied: Biber
23.07.2009 um 16:14 Uhr
Moin lobiwan,

schreibe in der Batchdatei statt...
01.
cscript meinscript.vbs VendorID DeviceID & Echo %Errorlevel%
... jetzt zweizeilig:
01.
cscript meinscript.vbs VendorID DeviceID  
02.
Echo %Errorlevel%
Wenn Du es in einer Zeile mit "&" verknüpft schreibst, wird der %Errorlevel% ausgegeben, der gesetzt war,
als die CMD.exe sich diese Zeile zum parsen, interpretieren und letzendlich ausführen geladen hat.
Also somit auch, bevor der CScript-Schlenker ausgeführt wurde.

Grüße
Biber
Bitte warten ..
Mitglied: lobiwan
24.07.2009 um 08:08 Uhr
Tja, was soll ich sagen, FUNKTIONIERT !!!!
Manchmal sollte man(n) doch eher fragen.

Danke

Lobiwan
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Cpl Dateien per Batch oder VBS öffnen (1)

Frage von Angelo131095 zum Thema Batch & Shell ...

VB for Applications
gelöst Tool zur scriptbasierten PDF-Bearbeitung gesucht (VBS oder Batch) (6)

Frage von SarekHL zum Thema VB for Applications ...

Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Neue Wissensbeiträge
Windows Server

Verschieben von Servergespeicherten Profilen an einen anderen Speicherort

Erfahrungsbericht von Enriqe zum Thema Windows Server ...

Windows 10

Plattformdienst für unbekannte Geräte (7023)

Tipp von KMUlife zum Thema Windows 10 ...

Administrator.de Feedback

Umgangsformen auf der Seite

(16)

Information von Frank zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
Windows Server Komplettspiegelung (17)

Frage von pdiddo zum Thema Windows Server ...

Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows 10
IP sperren? (12)

Frage von knowon zum Thema Windows 10 ...