Gibt es eine Möglichkeit, ein Meldungsfeld aus einer Batch-Datei anzuzeigen (ähnlich wie xmessage
bei Bash-Skripten unter Linux)?
Gibt es eine Möglichkeit, ein Meldungsfeld aus einer Batch-Datei anzuzeigen (ähnlich wie xmessage
bei Bash-Skripten unter Linux)?
Antworten:
Ich würde eine sehr einfache VBScript-Datei erstellen und sie mit CScript aufrufen, um die Befehlszeilenparameter zu analysieren.
So etwas wie das Folgende wurde gespeichert in MessageBox.vbs
:
Set objArgs = WScript.Arguments
messageText = objArgs(0)
MsgBox messageText
Was du gerne nennen würdest:
cscript MessageBox.vbs "This will be shown in a popup."
MsgBox
Referenz, wenn Sie an dieser Route interessiert sind.
Zunächst einmal hat DOS nichts damit zu tun, Sie möchten wahrscheinlich eine Windows-Befehlszeilenlösung (wieder: kein DOS, reines Windows, nur kein Fenster, sondern eine Konsole).
Sie können entweder die von boflynn bereitgestellte VBScript-Methode verwenden net send
oder oder msg
. net send
funktioniert nur unter älteren Windows-Versionen:
net send localhost Some message to display
Dies hängt jedoch auch vom auszuführenden Messenger-Dienst ab.
Für neuere Versionen (XP und höher anscheinend):
msg "%username%" Some message to display
Es ist zu beachten, dass ein mit gesendetes Nachrichtenfeld msg.exe
nur 60 Sekunden lang gültig ist. Dies kann jedoch mit dem /time:xx
Schalter überschrieben werden.
Möglicherweise wird ein kleiner Blitz angezeigt, es sind jedoch keine temporären Dateien erforderlich. Sollte bis irgendwo in der (IIRC) IE5-Ära funktionieren.
mshta javascript:alert("Message\n\nMultiple\nLines\ntoo!");close();
Vergessen Sie nicht, sich Ihren Klammern zu entziehen, wenn Sie Folgendes verwenden if
:
if 1 == 1 (
mshta javascript:alert^("1 is equal to 1, amazing."^);close^(^);
)
close() was unexpected at this time
.
^
Escape-Zeichen in einer Fledermaus-Datei entfernen
Daraufhin wird ein weiteres Eingabeaufforderungsfenster angezeigt:
START CMD /C "ECHO My Popup Message && PAUSE"
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
Ändern Sie die cols=18
Anzahl der Zeichen in der Nachricht + 2. Und die lines=2
Anzahl der Zeilen beträgt + 1.
cmd /k
Versuchen :
Msg * "insert your message here"
Wenn Sie command.com von Windows XP verwenden, wird ein Meldungsfeld geöffnet.
Das Öffnen eines neuen Cmd-Fensters ist nicht ganz das, wonach Sie gefragt haben. Sie können auch VBScript verwenden und dies mit Ihrer .bat-Datei verwenden. Sie würden es mit diesem Befehl aus der bat-Datei öffnen:
cd C:\"location of vbscript"
Dies ändert das Verzeichnis, in dem command.com nach Dateien sucht, und dann in der nächsten Zeile:
"insert name of your vbscript here".vbs
Anschließend erstellen Sie ein neues Editor- Dokument und geben es ein
<script type="text/vbscript">
MsgBox "your text here"
</script>
Sie würden dies dann als .vbs-Datei speichern (indem Sie ".vbs" am Ende des Dateinamens einfügen) und als "Alle Dateien" im Dropdown-Feld unter dem Dateinamen speichern (damit es nicht als .txt gespeichert wird ), dann klicken Sie auf Speichern!
<script/>
Tag nicht.
msg *
Sie aufgefordert, eine Nachricht gefolgt von Strg-Z einzugeben. Hier können Sie Zeilenumbrüche eingeben, die in Ihrer Nachricht angezeigt werden.
Nur noch wenige Möglichkeiten.
1) Das geekeste und hackigste - es verwendet den IEXPRESS, um eine kleine Exe zu erstellen, die ein Popup mit einer einzigen Schaltfläche erstellt ( es können zwei weitere Arten von Popup-Nachrichten erstellt werden ). Funktioniert unter JEDEM Windows ab XP:
;@echo off
;setlocal
;set ppopup_executable=popupe.exe
;set "message2=click OK to continue"
;
;del /q /f %tmp%\yes >nul 2>&1
;
;copy /y "%~f0" "%temp%\popup.sed" >nul 2>&1
;(echo(FinishMessage=%message2%)>>"%temp%\popup.sed";
;(echo(TargetName=%cd%\%ppopup_executable%)>>"%temp%\popup.sed";
;(echo(FriendlyName=%message1_title%)>>"%temp%\popup.sed"
;
;iexpress /n /q /m %temp%\popup.sed
;%ppopup_executable%
;rem del /q /f %ppopup_executable% >nul 2>&1
;pause
;endlocal
;exit /b 0
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=1
HideExtractAnimation=1
UseLongFileName=0
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[SourceFiles]
SourceFiles0=C:\Windows\System32\
[SourceFiles0]
%FILE0%=
[Strings]
AppLaunched=subst.exe
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="subst.exe"
DisplayLicense=
InstallPrompt=
2) Verwenden MSHTA
. Funktioniert auch auf jedem Windows-Computer ab XP und höher (obwohl das OP keine "externen" Sprachen will, wird das JavaScript hier minimiert). Sollte gespeichert werden als .bat
:
@if (true == false) @end /*!
@echo off
mshta "about:<script src='file://%~f0'></script><script>close()</script>" %*
goto :EOF */
alert("Hello, world!");
oder in einer Zeile:
mshta "about:<script>alert('Hello, world!');close()</script>"
oder
mshta "javascript:alert('message');close()"
oder
mshta.exe vbscript:Execute("msgbox ""message"",0,""title"":close")
3) Hier ist parametrisierter .bat/jscript
Hybrid (sollte gespeichert werden als bat
). Trotz der OP-Anfrage wird wieder JavaScript verwendet, aber da es sich um eine Fledermaus handelt, kann es problemlos als Fledermausdatei aufgerufen werden. Es verwendet POPUP, das etwas mehr Kontrolle ermöglicht als das populärere MSGBOX . Es verwendet WSH, aber nicht MSHTA wie im obigen Beispiel.
@if (@x)==(@y) @end /***** jscript comment ******
@echo off
cscript //E:JScript //nologo "%~f0" "%~nx0" %*
exit /b 0
@if (@x)==(@y) @end ****** end comment *********/
var wshShell = WScript.CreateObject("WScript.Shell");
var args=WScript.Arguments;
var title=args.Item(0);
var timeout=-1;
var pressed_message="button pressed";
var timeout_message="timed out";
var message="";
function printHelp() {
WScript.Echo(title + "[-title Title] [-timeout m] [-tom \"Time-out message\"] [-pbm \"Pressed button message\"] [-message \"pop-up message\"]");
}
if (WScript.Arguments.Length==1){
runPopup();
WScript.Quit(0);
}
if (args.Item(1).toLowerCase() == "-help" || args.Item(1).toLowerCase() == "-h" ) {
printHelp();
WScript.Quit(0);
}
if (WScript.Arguments.Length % 2 == 0 ) {
WScript.Echo("Illegal arguments ");
printHelp();
WScript.Quit(1);
}
for (var arg = 1 ; arg<args.Length;arg=arg+2) {
if (args.Item(arg).toLowerCase() == "-title") {
title = args.Item(arg+1);
}
if (args.Item(arg).toLowerCase() == "-timeout") {
timeout = parseInt(args.Item(arg+1));
if (isNaN(timeout)) {
timeout=-1;
}
}
if (args.Item(arg).toLowerCase() == "-tom") {
timeout_message = args.Item(arg+1);
}
if (args.Item(arg).toLowerCase() == "-pbm") {
pressed_message = args.Item(arg+1);
}
if (args.Item(arg).toLowerCase() == "-message") {
message = args.Item(arg+1);
}
}
function runPopup(){
var btn = wshShell.Popup(message, timeout, title, 0x0 + 0x10);
switch(btn) {
// button pressed.
case 1:
WScript.Echo(pressed_message);
break;
// Timed out.
case -1:
WScript.Echo(timeout_message);
break;
}
}
runPopup();
4) und ein jscript.net/.bat
Hybrid (sollte gespeichert werden als .bat
). Dieses Mal verwendet .NET
und kompiliert es eine kleine .exe
Datei, die gelöscht werden könnte:
@if (@X)==(@Y) @end /****** silent jscript comment ******
@echo off
::::::::::::::::::::::::::::::::::::
::: compile the script ::::
::::::::::::::::::::::::::::::::::::
setlocal
::if exist "%~n0.exe" goto :skip_compilation
:: searching the latest installed .net framework
for /f "tokens=* delims=" %%v in ('dir /b /s /a:d /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
if exist "%%v\jsc.exe" (
rem :: the javascript.net compiler
set "jsc=%%~dpsnfxv\jsc.exe"
goto :break_loop
)
)
echo jsc.exe not found && exit /b 0
:break_loop
call %jsc% /nologo /out:"%~n0.exe" "%~f0"
::::::::::::::::::::::::::::::::::::
::: end of compilation ::::
::::::::::::::::::::::::::::::::::::
:skip_compilation
::
::::::::::
"%~n0.exe" %*
::::::::
::
endlocal
exit /b 0
****** end of jscript comment ******/
import System;
import System.Windows;
import System.Windows.Forms
var arguments:String[] = Environment.GetCommandLineArgs();
MessageBox.Show(arguments[1],arguments[0]);
5) und am Ende ein einzelner Aufruf von Powershell, der ein Popup erstellt (kann über die Befehlszeile oder über den Stapel aufgerufen werden, wenn Powershell installiert ist):
powershell [Reflection.Assembly]::LoadWithPartialName("""System.Windows.Forms""");[Windows.Forms.MessageBox]::show("""Hello World""", """My PopUp Message Box""")
6) Und der Ansatz des Dbenham hier gesehen
start "" cmd /c "echo(&echo(&echo Hello world! &echo(&pause>nul"
7 ) Für ein System - Tray - Benachrichtigungen können Sie versuchen , diese :
call SystemTrayNotification.bat -tooltip warning -time 3000 -title "Woow" -text "Boom" -icon question
Auf diese Weise erstellt Ihre Batchdatei ein VBS-Skript und zeigt ein Popup an. Nach der Ausführung löscht die Batchdatei diese Zwischendatei.
Der Vorteil der Verwendung von MSGBOX ist, dass es wirklich anpassbar ist (Titel, Symbol usw. ändern), während MSG.exe nicht so viel ist.
echo MSGBOX "YOUR MESSAGE" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q
Hier ist eine PowerShell-Variante, bei der vor dem Erstellen des Fensters keine Baugruppen geladen werden müssen. Sie wird jedoch deutlich langsamer ausgeführt (~ + 50%) als der hier von @npocmaka veröffentlichte PowerShell MessageBox-Befehl:
powershell (New-Object -ComObject Wscript.Shell).Popup("""Operation Completed""",0,"""Done""",0x0)
Sie können den letzten Parameter von "0x0" in einen Wert unten ändern, um Symbole im Dialogfeld anzuzeigen ( weitere Informationen finden Sie unter Popup-Methode ):
0x10 Stop
0x20 Fragezeichen
0x30 Ausrufezeichen
0x40 Informationszeichen
Angepasst an den Microsoft TechNet-Artikel PowerTip: Verwenden Sie PowerShell, um das Popup-Fenster anzuzeigen .
echo X=MsgBox("Message Description",0+16,"Title") >msg.vbs
–Sie können beliebige Zahlen von 0,1,2,3,4 anstelle von 0 (vor dem Symbol '+') schreiben. Hier ist die Bedeutung jeder Zahl:
0 = Ok Button
1 = Ok/Cancel Button
2 = Abort/Retry/Ignore button
3 = Yes/No/Cancel
4 = Yes/No
–Sie können beliebige Zahlen von 16,32,48,64 anstelle von 16 (nach dem Symbol '+') schreiben. Hier ist die Bedeutung jeder Zahl:
16 – Critical Icon
32 – Warning Icon
48 – Warning Message Icon
64 – Information Icon
Nachricht * "Geben Sie hier Ihre Nachricht ein"
funktioniert einwandfrei, speichern Sie es einfach als .bat-Datei im Editor oder stellen Sie sicher, dass das Format auf "alle Dateien" eingestellt ist.
msg %SESSIONNAME% msg
msg * /time:0 /w Hello everybody!
Diese Nachricht wartet ewig, bis auf OK geklickt wird (sie dauert standardmäßig nur eine Minute) und funktioniert in Windows 8.1 einwandfrei
msg * /time:0 /w <C:\Somewhere\Message.txt
Dabei befindet sich in der Datei normaler Text (der CrLfs enthält).
Dazu benötigen Sie ein kleines Programm, das eine Meldungsbox anzeigt und diese aus Ihrer Batchdatei ausführt.
Sie können zwar ein Konsolenfenster öffnen, in dem eine Eingabeaufforderung angezeigt wird. Es ist jedoch nicht möglich, ein GUI-Meldungsfeld nur mit cmd.exe und Freunden abzurufen, AFAIK.
Ich verwende ein Dienstprogramm namens msgbox.exe von hier: http://www.paulsadowski.com/WSH/cmdprogs.htm
Sie können Zenity verwenden . Zenity ermöglicht die Ausführung von Dialogfeldern in Befehlszeilen- und Shell-Skripten. Weitere Informationen finden Sie auch auf Wikipedia .
Es ist plattformübergreifend: Ein Windows-Installationsprogramm für Windows finden Sie hier .
Wenn Sie der Antwort von @ Fowl folgen, können Sie sie mit einer Zeitüberschreitung verbessern, die nur 10 Sekunden lang angezeigt wird, indem Sie Folgendes verwenden:
mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"
Sehen Sie hier für weitere Details.
Sie können die DLL-Funktion von user32.dll aus aufrufen
Rundll32.exe user32.dll, MessageBox (0, "text", "titleText", {zusätzliche Flags für die oberste Nachrichtenbox usw.})
Wenn Sie es von meinem Telefon aus eingeben, beurteilen Sie mich nicht ... sonst würde ich die zusätzlichen Flags verknüpfen.
rundll32.exe user32.dll,MessageBoxA X
eine Nachrichtenbox mit X als Titel anzeigen, wenn ich dies im Feld Ausführen mache. Egal, was ich X mache, ich kann es nicht als mehrere Parameter interpretieren lassen - alles geht in den Titel. rundll32.exe user32.dll,MessageBoxA (0, "MyTitle", "MyText", 0)
Zeigt also ein Meldungsfeld mit dem Titel " (0, "MyTitle", "MyText", 0)
Aber ich kann es überhaupt nicht zum Laufen bringen" über die Befehlszeile an - nur über das Feld "Ausführen". In der Kommandozeile macht es überhaupt nichts. Funktioniert es sicher über eine Befehlszeile oder aus einer Batchdatei oder nur über das Feld Ausführen?
msg * /server:127.0.0.1 Geben Sie hier Ihre Nachricht ein
where msg
zurück C:\Windows\System32\msg.exe
. Ich denke, Sie denken annet send
Diese Anwendung kann dies tun, wenn Sie Ihre Batch-Dateien in ausführbare Dateien konvertieren (umbrechen).
Einfache Messagebox
%extd% /messagebox Title Text
Fehlermeldung
%extd% /messagebox Error "Error message" 16
Abbrechen Versuchen Sie es erneut Messagebox
%extd% /messagebox Title "Try again or Cancel" 5
4) Messagebox "Nie wieder fragen"
%extd% /messageboxcheck Title Message 0 {73E8105A-7AD2-4335-B694-94F837A38E79}
Eine bessere Option
set my_message=Hello world
&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"
Beschreibung:
lines=
Anzahl der Zeilen plus 1
cols=
Anzahl der Zeichen in der Nachricht plus 3 (Minimum muss jedoch sein 15
)
cols
Version:set my_message=Hello world
&& (echo %my_message%>EMPTY_FILE123 && FOR %? IN (EMPTY_FILE123 ) DO SET strlength=%~z? && del EMPTY_FILE123 ) && start cmd /c "@echo off && mode con lines=2 cols=%strlength% && echo %my_message% && pause>nul"
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
). Dein nicht. Es gibt die Nachricht wieder, kann jedoch die Fenstergröße nicht festlegen, die The screen cannot be set to the number of lines and columns specified.
zumindest in Windows 7 zurückgegeben wird.
x
im aktuellen Verzeichnis oder es macht Ihnen nichts aus, sie zu verlieren.
x
, schlägt Ihr Befehl nur fehl. Danke mir nicht und bitte repariere einfach deinen Code. Sie müssen nicht einmal einen Einzeiler verwenden. Und wenn Sie der Meinung sind, dass Ihr Code so gut ist, veröffentlichen Sie ihn bitte in Code Review .
Hier ist mein Batch-Skript, das ich basierend auf den guten Antworten hier und in anderen Posts zusammengestellt habe
Sie können das Titel-Timeout und sogar den Ruhezustand festlegen, um es für letztere & \ n für neue Zeilen zu planen
Nennen Sie es popup.bat und legen Sie es in Ihrem Windows-Pfadordner ab, damit es global auf Ihrem PC funktioniert
Beispielsweise popup Line 1\nLine 2
wird ein Popup-Feld mit zwei Zeilen erstellt (Typ popup /?
für die Verwendung).
Hier ist der Code
<!-- : Begin CMD
@echo off
cscript //nologo "%~f0?.wsf" %*
set pop.key=[%errorlevel%]
if %pop.key% == [-1] set pop.key=TimedOut
if %pop.key% == [1] set pop.key=Ok
if %pop.key% == [2] set pop.key=Cancel
if %pop.key% == [3] set pop.key=Abort
if %pop.key% == [4] set pop.key=Retry
if %pop.key% == [5] set pop.key=Ignore
if %pop.key% == [6] set pop.key=Yes
if %pop.key% == [7] set pop.key=No
if %pop.key% == [10] set pop.key=TryAgain
if %pop.key% == [11] set pop.key=Continue
if %pop.key% == [99] set pop.key=NoWait
exit /b
-- End CMD -->
<job><script language="VBScript">
'on error resume next
q =""""
qsq =""" """
Set objArgs = WScript.Arguments
Set objShell= WScript.CreateObject("WScript.Shell")
Popup = 0
Title = "Popup"
Timeout = 0
Mode = 0
Message = ""
Sleep = 0
button = 0
If objArgs.Count = 0 Then
Usage()
ElseIf objArgs(0) = "/?" or Lcase(objArgs(0)) = "-h" or Lcase(objArgs(0)) = "--help" Then
Usage()
End If
noWait = Not wait()
For Each arg in objArgs
If (Mid(arg,1,1) = "/") and (InStr(arg,":") <> 0) Then haveSwitch = True
Next
If not haveSwitch Then
Message=joinParam("woq")
Else
For i = 0 To objArgs.Count-1
If IsSwitch(objArgs(i)) Then
S=split(objArgs(i) , ":" , 2)
select case Lcase(S(0))
case "/m","/message"
Message=S(1)
case "/tt","/title"
Title=S(1)
case "/s","/sleep"
If IsNumeric(S(1)) Then Sleep=S(1)*1000
case "/t","/time"
If IsNumeric(S(1)) Then Timeout=S(1)
case "/b","/button"
select case S(1)
case "oc", "1"
button=1
case "ari","2"
button=2
case "ync","3"
button=3
case "yn", "4"
button=4
case "rc", "5"
button=5
case "ctc","6"
button=6
case Else
button=0
end select
case "/i","/icon"
select case S(1)
case "s","x","stop","16"
Mode=16
case "?","q","question","32"
Mode=32
case "!","w","warning","exclamation","48"
Mode=48
case "i","information","info","64"
Mode=64
case Else
Mode=0
end select
end select
End If
Next
End If
Message = Replace(Message,"/\n", "°" )
Message = Replace(Message,"\n",vbCrLf)
Message = Replace(Message, "°" , "\n")
If noWait Then button=0
Wscript.Sleep(sleep)
Popup = objShell.Popup(Message, Timeout, Title, button + Mode + vbSystemModal)
Wscript.Quit Popup
Function IsSwitch(Val)
IsSwitch = False
If Mid(Val,1,1) = "/" Then
For ii = 3 To 9
If Mid(Val,ii,1) = ":" Then IsSwitch = True
Next
End If
End Function
Function joinParam(quotes)
ReDim ArgArr(objArgs.Count-1)
For i = 0 To objArgs.Count-1
If quotes = "wq" Then
ArgArr(i) = q & objArgs(i) & q
Else
ArgArr(i) = objArgs(i)
End If
Next
joinParam = Join(ArgArr)
End Function
Function wait()
wait=True
If objArgs.Named.Exists("NewProcess") Then
wait=False
Exit Function
ElseIf objArgs.Named.Exists("NW") or objArgs.Named.Exists("NoWait") Then
objShell.Exec q & WScript.FullName & qsq & WScript.ScriptFullName & q & " /NewProcess: " & joinParam("wq")
WScript.Quit 99
End If
End Function
Function Usage()
Wscript.Echo _
vbCrLf&"Usage:" _
&vbCrLf&" popup followed by your message. Example: ""popup First line\nescaped /\n\nSecond line"" " _
&vbCrLf&" To triger a new line use ""\n"" within the msg string [to escape enter ""/"" before ""\n""]" _
&vbCrLf&"" _
&vbCrLf&"Advanced user" _
&vbCrLf&" If any Switch is used then you must use the /m: switch for the message " _
&vbCrLf&" No space allowed between the switch & the value " _
&vbCrLf&" The switches are NOT case sensitive " _
&vbCrLf&"" _
&vbCrLf&" popup [/m:""*""] [/t:*] [/tt:*] [/s:*] [/nw] [/i:*]" _
&vbCrLf&"" _
&vbCrLf&" Switch | value |Description" _
&vbCrLf&" -----------------------------------------------------------------------" _
&vbCrLf&" /m: /message:| ""1 2"" |if the message have spaces you need to quote it " _
&vbCrLf&" | |" _
&vbCrLf&" /t: /time: | nn |Duration of the popup for n seconds " _
&vbCrLf&" | |<Default> untill key pressed" _
&vbCrLf&" | |" _
&vbCrLf&" /tt: /title: | ""A B"" |if the title have spaces you need to quote it " _
&vbCrLf&" | | <Default> Popup" _
&vbCrLf&" | |" _
&vbCrLf&" /s: /sleep: | nn |schedule the popup after n seconds " _
&vbCrLf&" | |" _
&vbCrLf&" /nw /NoWait | |Continue script without the user pressing ok - " _
&vbCrLf&" | | botton option will be defaulted to OK button " _
&vbCrLf&" | |" _
&vbCrLf&" /i: /icon: | ?/q |[question mark]" _
&vbCrLf&" | !/w |[exclamation (warning) mark]" _
&vbCrLf&" | i/info|[information mark]" _
&vbCrLf&" | x/stop|[stop\error mark]" _
&vbCrLf&" | n/none|<Default>" _
&vbCrLf&" | |" _
&vbCrLf&" /b: /button: | o |[OK button] <Default>" _
&vbCrLf&" | oc |[OK and Cancel buttons]" _
&vbCrLf&" | ari |[Abort, Retry, and Ignore buttons]" _
&vbCrLf&" | ync |[Yes, No, and Cancel buttons]" _
&vbCrLf&" | yn |[Yes and No buttons]" _
&vbCrLf&" | rc |[Retry and Cancel buttons]" _
&vbCrLf&" | ctc |[Cancel and Try Again and Continue buttons]" _
&vbCrLf&" ---> | ---> |The output will be saved in variable ""pop.key""" _
&vbCrLf&"" _
&vbCrLf&"Example:" _
&vbCrLf&" popup /tt:""My MessageBox"" /t:5 /m:""Line 1\nLine 2\n/\n\nLine 4""" _
&vbCrLf&"" _
&vbCrLf&" v1.9 By RDR @ 2020"
Wscript.Quit
End Function
</script></job>
Es muss NUR in einer VM eingeblendet werden. Technisch gesehen sollte es also Code geben wie:
if %machine_type% == virtual_machine then
echo message box code
else
continue normal installation code