क्या एक बैच फ़ाइल से एक संदेश बॉक्स प्रदर्शित करने का एक तरीका है ( xmessage
लिनक्स में बैश-स्क्रिप्ट से कैसे उपयोग किया जा सकता है)?
क्या एक बैच फ़ाइल से एक संदेश बॉक्स प्रदर्शित करने का एक तरीका है ( xmessage
लिनक्स में बैश-स्क्रिप्ट से कैसे उपयोग किया जा सकता है)?
जवाबों:
मैं एक बहुत ही सरल VBScript फ़ाइल बनाऊंगा और कमांड लाइन पैरामीटर को पार्स करने के लिए CScript का उपयोग करके इसे कॉल करूंगा।
निम्नलिखित में कुछ इस तरह से सहेजा गया है MessageBox.vbs
:
Set objArgs = WScript.Arguments
messageText = objArgs(0)
MsgBox messageText
जिसे आप पसंद करेंगे:
cscript MessageBox.vbs "This will be shown in a popup."
MsgBox
संदर्भ यदि आप इस मार्ग पर जाने में रुचि रखते हैं।
सबसे पहले, डॉस का इससे कोई लेना-देना नहीं है, आप शायद एक विंडोज कमांड लाइन समाधान चाहते हैं (फिर से: कोई डॉस, शुद्ध विंडोज, सिर्फ एक खिड़की नहीं, बल्कि एक कंसोल)।
आप या तो boflynn द्वारा प्रदान की गई VBScript विधि का उपयोग कर सकते हैं या आप गलत उपयोग कर सकते हैं net send
या msg
। net send
केवल पुराने संस्करणों पर काम करता है:
net send localhost Some message to display
हालांकि यह मैसेंजर सेवा पर भी निर्भर करता है।
नए संस्करणों के लिए (एक्सपी और आगे, जाहिरा तौर पर):
msg "%username%" Some message to display
यह ध्यान दिया जाना चाहिए कि उपयोग किया गया एक संदेश बॉक्स msg.exe
केवल 60 सेकंड तक चलेगा। हालांकि इसे /time:xx
स्विच के साथ ओवरराइड किया जा सकता है ।
थोड़ा फ़्लैश दिखा सकते हैं, लेकिन कोई अस्थायी फ़ाइलों की आवश्यकता नहीं है। (IIRC) IE5 युग में सभी तरह से वापस काम करना चाहिए।
mshta javascript:alert("Message\n\nMultiple\nLines\ntoo!");close();
यदि आप उपयोग कर रहे हैं तो अपने कोष्ठकों से बचना न भूलें if
:
if 1 == 1 (
mshta javascript:alert^("1 is equal to 1, amazing."^);close^(^);
)
close() was unexpected at this time
:।
^
एक
यह एक और कमांड प्रॉम्प्ट विंडो को पॉप-अप करेगा:
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"
बदलें cols=18
। और lines=2
जो भी लाइनों की राशि + 1 है।
cmd /k
प्रयत्न :
Msg * "insert your message here"
यदि आप विंडोज एक्सपी के कमशॉट का उपयोग कर रहे हैं, तो यह एक संदेश बॉक्स खोलेगा।
नई cmd विंडो खोलना वह नहीं है जो आप पूछ रहे थे, मैं इकट्ठा करता हूं। आप VBScript का भी उपयोग कर सकते हैं , और अपनी .bat फ़ाइल के साथ इसका । आप इसे इस कमांड के साथ बैट फाइल से खोलेंगे:
cd C:\"location of vbscript"
यह क्या करता है निर्देशिका को बदलने के लिए है, तो कम से कम अगली पंक्ति में फ़ाइलों के लिए खोज करेंगे:
"insert name of your vbscript here".vbs
फिर आप एक नया नोटपैड बनाएँ दस्तावेज़ टाइप करें
<script type="text/vbscript">
MsgBox "your text here"
</script>
फिर आप इसे .vbs फ़ाइल (फ़ाइल नाम के अंत में ".vbs" लगाकर) के रूप में सहेजेंगे, फ़ाइल नाम के नीचे ड्रॉप डाउन बॉक्स में "सभी फाइलें" के रूप में सहेजें (इसलिए यह .txt के रूप में सहेजता नहीं है। ), फिर सहेजें पर क्लिक करें!
<script/>
टैग की आवश्यकता नहीं है ।
msg *
तो आपको ctrl-Z के बाद एक संदेश दर्ज करने के लिए प्रेरित किया जाएगा। आप यहां लाइन ब्रेक दर्ज कर सकते हैं जो आपके संदेश में दिखाई देगा।
कुछ और तरीके।
1) geekiest और hackiest - यह छोटे एक्स बनाने के लिए IEXPRESS का उपयोग करता है जो एक बटन के साथ एक पॉप-अप बनाएगा ( यह दो और प्रकार के पॉप-अप संदेश बना सकता है )। 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=
२) उपयोग करना MSHTA
। एक्सपी और इसके बाद के संस्करण से प्रत्येक विंडोज़ मशीन पर काम करता है (ओपी नहीं चाहता है कि "बाहरी" भाषाएं यहां जावास्क्रिप्ट को कम से कम किया जाए)। के रूप में सहेजा जाना चाहिए .bat
:
@if (true == false) @end /*!
@echo off
mshta "about:<script src='file://%~f0'></script><script>close()</script>" %*
goto :EOF */
alert("Hello, world!");
या एक पंक्ति में:
mshta "about:<script>alert('Hello, world!');close()</script>"
या
mshta "javascript:alert('message');close()"
या
mshta.exe vbscript:Execute("msgbox ""message"",0,""title"":close")
3) यहाँ पैरामीटर .bat/jscript
हाइब्रिड है (इसे इस प्रकार बचाया जाना चाहिए bat
)। यह ओपी अनुरोध के बावजूद फिर से जावास्क्रिप्ट का उपयोग करता है लेकिन यह एक बल्ला है क्योंकि इसे बिना चिंता के बैट फाइल के रूप में कहा जा सकता है। यह POPUP का उपयोग करता है जो अधिक लोकप्रिय MSGBOX की तुलना में थोड़ा अधिक नियंत्रण की अनुमति देता है । यह WSH का उपयोग करता है, लेकिन ऊपर के उदाहरण में MSHTA की तरह नहीं।
@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) और एक jscript.net/.bat
हाइब्रिड ( .bat
इस रूप में बचाया जाना चाहिए )। यह .NET
एक छोटी .exe
फ़ाइल का उपयोग करता है और संकलित करता है जिसे हटाया जा सकता है:
@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) और अंत में एक सिंगल कॉल को पॉवरशेल करें जो एक पॉप-अप बनाता है (कमांड लाइन से या बैच से अगर पॉवरशेल इंस्टॉल हो तो कहा जा सकता है):
powershell [Reflection.Assembly]::LoadWithPartialName("""System.Windows.Forms""");[Windows.Forms.MessageBox]::show("""Hello World""", """My PopUp Message Box""")
6) और दांभम के दृष्टिकोण को यहां देखा गया
start "" cmd /c "echo(&echo(&echo Hello world! &echo(&pause>nul"
7 ) एक सिस्टम ट्रे सूचनाओं के लिए आप कोशिश कर सकते हैं इस :
call SystemTrayNotification.bat -tooltip warning -time 3000 -title "Woow" -text "Boom" -icon question
इस तरह आपकी बैच फ़ाइल VBS स्क्रिप्ट बनाएगी और पॉपअप दिखाएगी। इसके चलने के बाद, बैच फ़ाइल उस मध्यवर्ती फ़ाइल को हटा देगी।
MSGBOX का उपयोग करने का लाभ यह है कि यह वास्तव में अनुकूलन योग्य है (शीर्षक, आइकन आदि को बदलें) जबकि MSG.exe उतना नहीं है।
echo MSGBOX "YOUR MESSAGE" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q
यहाँ एक PowerShell संस्करण है जिसे विंडो बनाने से पहले लोडिंग असेंबली की आवश्यकता नहीं है, हालाँकि यह @npocmaka द्वारा पोस्ट किए गए PowerShell MessageBox कमांड की तुलना में काफी धीमा (~ + 50%) चलता है:
powershell (New-Object -ComObject Wscript.Shell).Popup("""Operation Completed""",0,"""Done""",0x0)
आप संवाद में आइकन प्रदर्शित करने के लिए नीचे दिए गए मान को अंतिम मान "0x0" से बदल सकते हैं ( आगे के संदर्भ के लिए पॉपअप विधि देखें ):
0x10 स्टॉप
0x20 प्रश्न चिह्न
0x30 विस्मयादिबोधक चिह्न
0x40 सूचना मार्क
Microsoft TechNet आलेख PowerTip से अनुकूलित : पॉप-अप विंडो प्रदर्शित करने के लिए PowerShell का उपयोग करें ।
echo X=MsgBox("Message Description",0+16,"Title") >msg.vbs
-आप किसी भी संख्या को 0 के बजाय 0,1,2,3,4 से लिख सकते हैं ('+' प्रतीक से पहले) और यहाँ प्रत्येक संख्या का अर्थ है:
0 = Ok Button
1 = Ok/Cancel Button
2 = Abort/Retry/Ignore button
3 = Yes/No/Cancel
4 = Yes/No
-आप किसी भी संख्या को 16 के बजाय 16,32,48,64 से लिख सकते हैं ('+' प्रतीक के बाद) और यहां प्रत्येक संख्या का अर्थ है:
16 – Critical Icon
32 – Warning Icon
48 – Warning Message Icon
64 – Information Icon
Msg * "यहां अपना संदेश डालें"
ठीक काम करता है, सिर्फ नोटपैड में एक .bat फ़ाइल के रूप में सहेजें या सुनिश्चित करें कि प्रारूप "सभी फ़ाइलों" पर सेट है
msg %SESSIONNAME% msg
msg * /time:0 /w Hello everybody!
जब तक ओके क्लिक नहीं किया जाता तब तक यह संदेश हमेशा इंतजार करता है (यह डिफ़ॉल्ट रूप से केवल एक मिनट तक रहता है) और विंडोज 8.1 में ठीक काम करता है
msg * /time:0 /w <C:\Somewhere\Message.txt
जहां फ़ाइल सामान्य पाठ है (जिसमें CrLf का है)।
ऐसा करने के लिए, आपके पास एक छोटा प्रोग्राम होना चाहिए जो एक संदेश बॉक्स प्रदर्शित करता है और जो आपके बैच फ़ाइल से चलता है।
आप एक कंसोल विंडो खोल सकते हैं जो एक संकेत प्रदर्शित करता है, लेकिन cmd.exe और दोस्तों का उपयोग करके GUI संदेश बॉक्स प्राप्त करना केवल AFBIK संभव नहीं है।
मैं यहाँ से msgbox.exe नामक एक उपयोगिता का उपयोग करता हूँ: http://www.paulsadowski.com/WSH/cmdprogs.htm
@ Fowl के उत्तर के बाद, आप इसे केवल 10 सेकंड के लिए निम्नलिखित का उपयोग करके प्रदर्शित होने के लिए समय-सीमा में सुधार कर सकते हैं:
mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"
अधिक जानकारी के लिए यहां देखें ।
आप user32.dll से dll फ़ंक्शन को आमंत्रित कर सकते हैं मुझे लगता है कि कुछ ऐसा है
Rundll32.exe user32.dll, MessageBox (0, "text", "titleText", {सबसे ऊपरी संदेश बॉक्स आदि के लिए अतिरिक्त झंडे})
इसे मेरे फोन से टाइप करना, मुझे जज मत करना ... नहीं तो मैं अतिरिक्त झंडे जोड़ दूंगा।
rundll32.exe user32.dll,MessageBoxA X
जब मैं रन बॉक्स में करता हूं तो मुझे शीर्षक के रूप में एक्स के साथ एक संदेश बॉक्स प्रदर्शित करने के लिए मिल सकता है । इससे कोई फर्क नहीं पड़ता कि मैं X को क्या बनाता हूं मैं इसे कई मापदंडों के रूप में व्याख्या करने के लिए प्राप्त नहीं कर सकता हूं - सब कुछ शीर्षक में जाता है। तो rundll32.exe user32.dll,MessageBoxA (0, "MyTitle", "MyText", 0)
एक मैसेजबॉक्स प्रदर्शित करता है, (0, "MyTitle", "MyText", 0)
लेकिन शीर्षक के साथ मैं कमांड लाइन से AT ALL पर काम करने के लिए नहीं मिल सकता - केवल रन बॉक्स से। कमांड लाइन पर यह कुछ भी नहीं करता है। क्या यह कमांड लाइन से या बैच फ़ाइल से या केवल रन बॉक्स से सुनिश्चित होता है?
संदेश * /server:127.0.0.1 यहां अपना संदेश लिखें
where msg
रिटर्न देता है C:\Windows\System32\msg.exe
। मुझे लगता है कि आप सोच रहे हैंnet send
यह एप्लिकेशन ऐसा कर सकता है, यदि आप अपने बैच फ़ाइलों को निष्पादन योग्य फ़ाइलों में परिवर्तित (रैप) करते हैं।
सिंपल मैसेजबॉक्स
%extd% /messagebox Title Text
त्रुटि संदेश
%extd% /messagebox Error "Error message" 16
संदेश फिर से प्रयास करें रद्द करें
%extd% /messagebox Title "Try again or Cancel" 5
4) "कभी भी मुझसे दोबारा मत पूछो" मैसेजबॉक्स
%extd% /messageboxcheck Title Message 0 {73E8105A-7AD2-4335-B694-94F837A38E79}
एक बेहतर विकल्प
set my_message=Hello world
&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"
विवरण:
lines=
लाइनों की राशि, प्लस 1
cols=
संदेश में पात्रों की राशि, प्लस 3 (हालांकि, न्यूनतम होना चाहिए15
)
cols
संस्करण: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"
)। तुम्हारा नहीं है यह मैसेज इकोस करता है लेकिन विंडो का आकार The screen cannot be set to the number of lines and columns specified.
कम से कम मेरे विंडोज 7 में सेट करने में विफल रहता है
x
वर्तमान निर्देशिका में नाम की कोई फ़ाइल न हो या आप इसे खोने का बुरा न मानें।
x
, तो आपका कमांड केवल विफल रहता है। मुझे धन्यवाद न दें और कृपया अपना कोड ठीक करें। आपको वन-लाइनर का उपयोग करने की भी आवश्यकता नहीं है। और अगर आपको लगता है कि आपका कोड इतना अच्छा है, तो कृपया इसे कोड समीक्षा में पोस्ट करें ।
यहाँ मेरी बैच स्क्रिप्ट है जिसे मैंने यहाँ और अन्य पोस्ट में अच्छे उत्तरों के आधार पर एक साथ रखा है
आप शीर्षक टाइमआउट सेट कर सकते हैं और यहां तक कि इसे नई पंक्ति के लिए बाद और \ n शेड्यूल करने के लिए भी सो सकते हैं
इसे popup.bat नाम दें और अपने पीसी पर विश्व स्तर पर काम करने के लिए इसे अपने विंडोज़ पथ फ़ोल्डर में रखें
उदाहरण के लिए popup Line 1\nLine 2
एक 2 लाइन पॉपअप बॉक्स (प्रकार) का उत्पादन करेगाpopup /?
उपयोग के लिए ) का
यहाँ कोड है
<!-- : 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>
vm के अंदर केवल पॉपअप करने की आवश्यकता है, इसलिए तकनीकी रूप से, कुछ कोड होना चाहिए जैसे:
if %machine_type% == virtual_machine then
echo message box code
else
continue normal installation code