Có cách nào để hiển thị hộp thông báo từ tệp bó (tương tự như cách xmessage
sử dụng từ bash-scripts trong Linux) không?
Có cách nào để hiển thị hộp thông báo từ tệp bó (tương tự như cách xmessage
sử dụng từ bash-scripts trong Linux) không?
Câu trả lời:
Tôi sẽ tạo một tệp VBScript rất đơn giản và gọi nó bằng CScript để phân tích các tham số dòng lệnh.
Một cái gì đó như sau được lưu trong MessageBox.vbs
:
Set objArgs = WScript.Arguments
messageText = objArgs(0)
MsgBox messageText
Mà bạn sẽ gọi như:
cscript MessageBox.vbs "This will be shown in a popup."
MsgBox
tham khảo nếu bạn quan tâm đến việc đi tuyến đường này.
Trước hết, DOS không có gì để làm với nó, bạn có thể muốn một giải pháp dòng lệnh Windows (một lần nữa: không có DOS, Windows thuần túy, không chỉ là Window, mà là Console).
Bạn có thể sử dụng phương thức VBScript do boflynn cung cấp hoặc bạn có thể sử dụng sai net send
hoặc msg
. net send
chỉ hoạt động trên các phiên bản cũ hơn của windows:
net send localhost Some message to display
Điều này cũng phụ thuộc vào dịch vụ Messenger để chạy, mặc dù.
Đối với các phiên bản mới hơn (XP trở đi, rõ ràng):
msg "%username%" Some message to display
Cần lưu ý rằng một hộp thông báo được gửi bằng cách sử dụng msg.exe
sẽ chỉ tồn tại trong 60 giây. Điều này tuy nhiên có thể được ghi đè bằng /time:xx
chuyển đổi.
Có thể hiển thị một chút flash, nhưng không cần tập tin tạm thời. Nên hoạt động trở lại một nơi nào đó trong kỷ nguyên IE5 (IIRC).
mshta javascript:alert("Message\n\nMultiple\nLines\ntoo!");close();
Đừng quên thoát dấu ngoặc đơn nếu bạn đang sử dụng if
:
if 1 == 1 (
mshta javascript:alert^("1 is equal to 1, amazing."^);close^(^);
)
close() was unexpected at this time
.
^
ký tự thoát đó trong tệp dơi
Điều này sẽ bật lên một cửa sổ Command Prompt khác:
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"
, thay đổi cols=18
số lượng ký tự trong tin nhắn + 2. Và lines=2
số lượng dòng là + 1.
cmd /k
Thử :
Msg * "insert your message here"
Nếu bạn đang sử dụng lệnh.com của Windows XP, điều này sẽ mở hộp thông báo.
Mở một cửa sổ cmd mới không hoàn toàn như những gì bạn yêu cầu, tôi thu thập. Bạn cũng có thể sử dụng VBScript và sử dụng tệp này với tệp .bat của mình. Bạn sẽ mở nó từ tệp bat với lệnh này:
cd C:\"location of vbscript"
Điều này không làm thay đổi thư mục lệnh.com sẽ tìm kiếm các tệp từ đó, sau đó trên dòng tiếp theo:
"insert name of your vbscript here".vbs
Sau đó, bạn tạo một tài liệu Notepad mới , nhập vào
<script type="text/vbscript">
MsgBox "your text here"
</script>
Sau đó, bạn sẽ lưu tệp này dưới dạng tệp .vbs (bằng cách đặt ".vbs" ở cuối tên tệp), lưu dưới dạng "Tất cả tệp" trong hộp thả xuống bên dưới tên tệp (vì vậy nó không lưu dưới dạng .txt ), sau đó nhấp vào Lưu!
<script/>
thẻ.
msg *
bạn sẽ được nhắc nhập một tin nhắn theo sau bởi ctrl-Z. Bạn có thể nhập ngắt dòng ở đây sẽ xuất hiện trong tin nhắn của bạn.
Vài cách khác.
1) Geekiest và hackiest - nó sử dụng IEXPRESS để tạo exe nhỏ sẽ tạo ra một cửa sổ bật lên với một nút duy nhất ( nó có thể tạo thêm hai loại thông báo bật lên ). Hoạt động trên MỌI cửa sổ từ XP trở lên:
;@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) Sử dụng MSHTA
. Cũng hoạt động trên mọi máy Windows từ XP trở lên (mặc dù OP không muốn các ngôn ngữ "bên ngoài", JavaScript ở đây được thu nhỏ). Nên được lưu dưới dạng .bat
:
@if (true == false) @end /*!
@echo off
mshta "about:<script src='file://%~f0'></script><script>close()</script>" %*
goto :EOF */
alert("Hello, world!");
hoặc trong một dòng:
mshta "about:<script>alert('Hello, world!');close()</script>"
hoặc là
mshta "javascript:alert('message');close()"
hoặc là
mshta.exe vbscript:Execute("msgbox ""message"",0,""title"":close")
3) Đây là thông số .bat/jscript
lai (nên được lưu dưới dạngbat
). Nó một lần nữa sử dụng JavaScript mặc dù yêu cầu OP nhưng vì nó là một con dơi nên nó có thể được gọi là một tập tin bat mà không phải lo lắng. Nó sử dụng POPUP cho phép kiểm soát nhiều hơn một chút so với MSGBOX phổ biến hơn . Nó sử dụng WSH, nhưng không phải MSHTA như trong ví dụ trên.
@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) và một jscript.net/.bat
kết hợp (nên được lưu dưới dạng .bat
). Lần này, nó sử dụng .NET
và biên dịch một .exe
tệp nhỏ có thể bị xóa:
@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) và cuối cùng, một lệnh gọi tới powershell sẽ tạo ra một cửa sổ bật lên (có thể được gọi từ dòng lệnh hoặc từ lô nếu cài đặt powershell):
powershell [Reflection.Assembly]::LoadWithPartialName("""System.Windows.Forms""");[Windows.Forms.MessageBox]::show("""Hello World""", """My PopUp Message Box""")
6) Và cách tiếp cận của dbenham được thấy ở đây
start "" cmd /c "echo(&echo(&echo Hello world! &echo(&pause>nul"
7 ) Đối với thông báo trên khay hệ thống, bạn có thể thử điều này :
call SystemTrayNotification.bat -tooltip warning -time 3000 -title "Woow" -text "Boom" -icon question
Bằng cách này, tệp bó của bạn sẽ tạo tập lệnh VBS và hiển thị cửa sổ bật lên. Sau khi chạy, tệp bó sẽ xóa tệp trung gian đó.
Ưu điểm của việc sử dụng MSGBOX là nó thực sự có thể tùy chỉnh (thay đổi tiêu đề, biểu tượng, v.v.) trong khi MSG.exe không nhiều.
echo MSGBOX "YOUR MESSAGE" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q
Đây là một biến thể PowerShell không yêu cầu tải các cụm trước khi tạo cửa sổ, tuy nhiên, nó chạy chậm hơn đáng kể (~ + 50%) so với lệnh PowerShell MessageBox được đăng ở đây bởi @npocmaka:
powershell (New-Object -ComObject Wscript.Shell).Popup("""Operation Completed""",0,"""Done""",0x0)
Bạn có thể thay đổi tham số cuối cùng từ "0x0" thành giá trị bên dưới để hiển thị các biểu tượng trong hộp thoại (xem Phương pháp Popup để tham khảo thêm):
0x10 Dừng
0x20 Dấu hỏi
0x30 Dấu chấm than
0x40 Dấu thông tin
Được chuyển thể từ bài viết PowerTip của Microsoft TechNet : Sử dụng PowerShell để hiển thị Cửa sổ bật lên .
echo X=MsgBox("Message Description",0+16,"Title") >msg.vbs
Bạn có thể viết bất kỳ số nào từ 0,1,2,3,4 thay vì 0 (trước ký hiệu '+') và đây là ý nghĩa của mỗi số:
0 = Ok Button
1 = Ok/Cancel Button
2 = Abort/Retry/Ignore button
3 = Yes/No/Cancel
4 = Yes/No
Bạn có thể viết bất kỳ số nào từ 16,32,48,64 thay vì 16 (sau ký hiệu '+') và đây là ý nghĩa của mỗi số:
16 – Critical Icon
32 – Warning Icon
48 – Warning Message Icon
64 – Information Icon
Msg * "chèn tin nhắn của bạn vào đây"
hoạt động tốt, chỉ cần lưu dưới dạng tệp .bat trong notepad hoặc đảm bảo định dạng được đặt thành "tất cả các tệp"
msg %SESSIONNAME% msg
msg * /time:0 /w Hello everybody!
Thông báo này chờ mãi cho đến khi nhấp vào OK (nó chỉ tồn tại trong một phút theo mặc định) và hoạt động tốt trong Windows 8.1
msg * /time:0 /w <C:\Somewhere\Message.txt
trong đó trong tệp là văn bản bình thường (chứa CrLf's).
Để thực hiện việc này, bạn cần có một chương trình nhỏ hiển thị hộp thông báo và chạy chương trình đó từ tệp bó của bạn.
Bạn có thể mở một cửa sổ giao diện điều khiển hiển thị lời nhắc mặc dù, nhưng nhận được hộp thông báo GUI bằng cmd.exe và chỉ bạn bè là không thể, AFAIK.
Tôi sử dụng một tiện ích có tên là dirbox.exe từ đây: http://www.paulsadowski.com/WSH/cmdprogs.htmlm
Theo câu trả lời của @ Fowl, bạn có thể cải thiện nó với thời gian chờ chỉ xuất hiện trong 10 giây bằng cách sử dụng như sau:
mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"
Xem ở đây để biết thêm chi tiết.
Bạn có thể gọi hàm dll từ user32.dll tôi nghĩ một cái gì đó như
Rundll32.exe user32.dll, MessageBox (0, "văn bản", "titleText", {cờ bổ sung để thích hộp thư trên cùng, v.v.))
Nhập nó từ điện thoại của tôi, đừng phán xét tôi ... nếu không tôi sẽ liên kết các cờ phụ.
rundll32.exe user32.dll,MessageBoxA X
để hiển thị một hộp thông báo với X là tiêu đề khi tôi làm điều đó trong hộp Run. Bất kể tôi làm X là gì, tôi không thể hiểu nó là nhiều tham số - mọi thứ đều đi vào tiêu đề. Vì vậy, rundll32.exe user32.dll,MessageBoxA (0, "MyTitle", "MyText", 0)
hiển thị một hộp thông báo có tiêu đề (0, "MyTitle", "MyText", 0)
Nhưng tôi không thể làm cho nó hoạt động AT ALL từ dòng lệnh - chỉ từ hộp Run. Trên dòng lệnh nó không làm gì cả. Nó hoạt động chắc chắn từ một dòng lệnh hoặc từ một tệp bó hoặc chỉ từ hộp Run?
tin nhắn * /server:127.0.0.1 Nhập tin nhắn của bạn vào đây
where msg
trả về C:\Windows\System32\msg.exe
. Tôi nghĩ bạn đang nghĩ đếnnet send
Ứng dụng này có thể làm điều đó, nếu bạn chuyển đổi (bọc) các tệp bó của bạn thành các tệp thực thi.
Hộp thư đơn giản
%extd% /messagebox Title Text
Hộp thông báo lỗi
%extd% /messagebox Error "Error message" 16
Hủy thử lại hộp thư
%extd% /messagebox Title "Try again or Cancel" 5
4) "Không bao giờ hỏi lại tôi" Hộp thư
%extd% /messageboxcheck Title Message 0 {73E8105A-7AD2-4335-B694-94F837A38E79}
Một lựa chọn tốt hơn
set my_message=Hello world
&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"
Mô tả:
lines=
số lượng dòng, cộng với 1
cols=
lượng ký tự trong tin nhắn, cộng với 3 (Tuy nhiên, tối thiểu phải là15
)
cols
Phiên bản tự động tính toán :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"
). Bạn không. Nó lặp lại thông báo nhưng không thể đặt kích thước cửa sổ trở lại The screen cannot be set to the number of lines and columns specified.
ít nhất trong Windows 7.
x
trong thư mục hiện tại hoặc bạn không ngại mất nó.
x
, lệnh của bạn sẽ thất bại. Đừng cảm ơn tôi và làm ơn chỉ sửa mã của bạn. Bạn thậm chí không cần sử dụng một lớp lót. Và nếu bạn nghĩ rằng mã của bạn rất tốt, xin vui lòng gửi nó trong Đánh giá mã .
Đây là tập lệnh bó của tôi mà tôi kết hợp dựa trên các câu trả lời hay ở đây & trong các bài viết khác
Bạn có thể đặt thời gian chờ tiêu đề & thậm chí ngủ để lên lịch cho lần sau & \ n cho dòng mới
Đặt tên là popup.bat và đặt nó vào thư mục đường dẫn windows để hoạt động toàn cầu trên máy tính của bạn
Ví dụ: popup Line 1\nLine 2
sẽ tạo ra hộp bật lên 2 dòng (loạipopup /?
để sử dụng)
Đây là mã
<!-- : 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>
nó chỉ cần CHỈ để bật lên khi bên trong vm, vì vậy về mặt kỹ thuật, cần có một số mã như:
if %machine_type% == virtual_machine then
echo message box code
else
continue normal installation code