Mit vbs programm starten?
Also ich möchte mit batch eine vbs erstellen die eine msgbox öffnet wo drinnen stehen soll ob man eine seite öffnen will oder nicht drückt man auf neine passiert nix und auf ja passiert was soweit habe ich es schonmal nur leider kenne ich mich mit vbs nicht gut aus, könnte jemand vllt. mein unfertiges skript vervollständigen ?
@echo off
echo choicex=MsgBox("Want to download latest version?" ,36, "Update!") > opensite.vbs
echo If choicex=6 Then (ab hier habe ich keine ahnung mehr) >> opensite.vbs
start /wait opensite.vbs
del /s /q opensite.vbs
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
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...
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