Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA CMD Output Variable

VBA CMD Output Variable
25.03.2015 10:45:03
Uwe
Hallo zusammen,
ich habe folgendes vor. Ich möchte über VBA und PsExec ein Programm auf einen anderen PC im Netzwerk installieren. Das funktioniert soweit auch. Nun kommt das Problem das ich das Errorlevel nicht abfangen kann. Weil er beim Errorlevel ja nur feststellt ob die CMD erfolgreich gelaufen ist und nicht ob der Code der CMD erfolgreich gelaufen ist. Ist es Möglich eventuell die Ausgabe der CMD in eine Varabile zu schreiben ?
Hier mein Code

Set objShell = CreateObject("Wscript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objNTInfo = CreateObject("WinNTSystemInfo")
strPSExec = "C:\temp\PSExec.exe"
strPSExec = objFSO.GetFile(strPSExec).ShortPath
strUser = "Administrator"
strPass = "1234Test"
strCmdPSE = "cmd /c " & strPSExec & " \\PC0001 " & " -u " & strUser & " -p " & strPass & " c:\   _
_
_
windows\system32\msiexec.exe /i C:\Software\Sun125.msi"
strRealCmd = strCmdPSE & " & echo %ERRORLEVEL% & pause"
objShell.Run strRealCmd

Danke schonmal
Grüße Uwe

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA CMD Output Variable
26.03.2015 16:24:29
Michael
Hallo Uwe,
schau Dir mal das da an: http://www.office-loesung.de/ftopic355471_0_0_asc.php
Das hab ich mir aus dieser und anderen Quellen ähnlich irgendwann mal zusammengebastelt:
Sub Aufruf()
Dim objShell As Object, objExec As Object
Dim strTarget, strResult As String
' Aufruf .EXE
Set objShell = CreateObject("WScript.Shell")
strTarget = "cmd /c ping www.herber.de"
Set objExec = objShell.Exec(strTarget)
Do While Not objExec.StdOut.AtEndOfStream
strResult = objExec.StdOut.ReadLine()
Debug.Print strResult
Loop
Set objShell = Nothing
End Sub
Ich bin mir jetzt nicht sicher, ob Du beim Aufruf eines "externen" Programmes überhaupt das cmd /c benötigst, da sollte eigentlich der Pfad zur EXE reichen. Ping ist ein "interner" Aufruf von command.com, oder?
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige