Mit vbs programm starten?

4 Antworten

Ich lasse die ganzen echo [zeile] >> vbs_Datei mal weg. Außerdem hoffe ich, dass vbs in diesem Punkt genauso läuft wie vba.

procNumber = Shell("Pfad\Programm.exe [arg1 arg2 ...]", [Fensterstil])

If procNumer = 0 Then
MsgBox "Das Programm konnte nicht gestartet werden"
End If

vgl. https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/shell-function

Woher ich das weiß:Berufserfahrung – Software-Entwickler

Wenn Du das Ergebnis nirgendwo auswertest kann es auch nicht verarbeitet werden....

zalto's variante ist Richtig, nur deine Batch erfährt nichts davon.

@echo off
echo Wscript.Echo MsgBox("Want to download latest version?" ,36, "Update!") >"%temp%\opensite.vbs"


for /f %%a in ('cscript /nologo "%temp%\opensite.vbs"') do (
  if %%a equ 6  (
    echo ja gedrueckt... mache  dies und jenes
  ) else ( echo Keinen Bock  auf  den Mist)
)
pause

Das generierte VBScript macht nichts anderes als das Ergebnis der Message-Box an den Standard-Out auszugeben.

Wichtig das Script mit cscript ausführen! (/nologo shaltet die Versionsanzeige aus)

Die Ausgabe wird in gewohnter Weise in der Batch über einen For-/F-Loop ausgewertet.

Dein del... ist Unfug und belastet lediglich die SSD. Was im TempOrdner landet wird irgendwann überschrieben, oder von der Systembereinigung entfernt... Die Meisten Anwender wissen nicht mal von der Existenz des Temp-Ordners. Also alle Hilfs-Datei in den Temp und vergessen...

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Das kann man in VBscript in eine Zeile packen

If MsgBox ("Want to...", 36, "Update") = 6 Then CreateObject("WScript.Shell").Run "https://www.gutefrage.net"

Warum mit vbs? In Batch ist es viel einfacher.

:1

set /p lastv=Want to download latest version? (Y/N):

if /i [%lastv%]==[y] (goto download)

if /i [%lastv%]==[n] (exit)

Echo Invalid Answer.

goto 1

:download

(Downloading latest version or what ever)

exit