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, 3632 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben (1)

Frage von MrRoyal zum Thema VB for Applications ...

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

Frage von Ceejaay zum Thema Windows 7 ...

Entwicklung
gelöst Mit Batch,VBS,Powershell Windows einrichten (1)

Frage von Justin98 zum Thema Entwicklung ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...