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, 3639 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
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ä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
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (13)

Frage von HeinrichM zum Thema Windows Server ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...