উইন্ডোজ ব্যাচ ফাইল থেকে একটি পপআপ / বার্তা বাক্স প্রদর্শন করুন


153

কোনও ব্যাচ ফাইল থেকে কোনও বার্তা বাক্স প্রদর্শন করার কোনও উপায় আছে ( xmessageলিনাক্সে ব্যাশ-স্ক্রিপ্টগুলি কীভাবে ব্যবহার করা যেতে পারে তার সমান )?


CMD.EXE, এটি একটি 32-বিট কমান্ড প্রসেসর যা ডস কমান্ড সমর্থন করে।
অ্যালান বি

7
একে উইন্ডোজ কমান্ড প্রম্পট বলে।
রিকার্ডো পোলো জারামিলো

উত্তর:


121

আমি খুব সাধারণ ভিবিএস স্ক্রিপ্ট ফাইল তৈরি করব এবং কমান্ড লাইনের পরামিতিগুলি পার্স করার জন্য এটি CScript ব্যবহার করে কল করব।

নীচে সংরক্ষণ করা কিছু মত MessageBox.vbs:

Set objArgs = WScript.Arguments
messageText = objArgs(0)
MsgBox messageText

যাকে আপনি পছন্দ করবেন:

cscript MessageBox.vbs "This will be shown in a popup."

MsgBoxআপনি যদি এই রুটে যেতে আগ্রহী হন তবে রেফারেন্স দিন


ধন্যবাদ যে এটি করবে, অসুস্থ কোনও ফাইল তৈরি করুন এটি মুছে ফেলার চেয়ে এটিতে এই ডেটাটি লিখুন এবং এটি ব্যবহার করুন। ভাল কাজ করা উচিত :)
বিলি 19

1
দুর্দান্ত উত্তর। এইভাবে আপনার আইকন, বোতাম এবং বাক্স শিরোনামের উপর সম্পূর্ণ নিয়ন্ত্রণ থাকতে পারে। এছাড়াও আপনি যখন PATH বরাবর আপনার ফাইলটি সংরক্ষণ করেন তখন যেকোন অবস্থান থেকে কল করে। আমি বিভিন্ন আইকন সহ সতর্কতার জন্য কয়েকটি ফাইল তৈরি করেছি।
Deus777

খুশী হলাম। বিটিডাব্লু, আপনার কমপক্ষে উইন 10 এ সিএসক্রিপ্ট ব্যবহার করার দরকার নেই। CScript সহ, আমি কমান্ড প্রম্পটে কিছু অতিরিক্ত পাঠ্য পেয়েছি। সিএসক্রিপ্ট ব্যতীত কেবলমাত্র সতর্কতা রয়েছে, যা দুর্দান্ত
একটি শিশু অফ গড

আমার সিসক্রিপ্ট ছিল না আমি পরিবর্তে ব্যবহার শুরু।
sureshvv

127

প্রথমত, ডসের এর সাথে কিছু করার নেই, আপনি সম্ভবত একটি উইন্ডোজ কমান্ড লাইন সমাধান চান (আবার: কোনও ডস, খাঁটি উইন্ডোজ, কেবল একটি উইন্ডো নয়, তবে কনসোল)।

হয় আপনি boflynn দ্বারা উপলব্ধ VB স্ক্রিপ্ট পদ্ধতি ব্যবহার করতে পারেন অথবা আপনি ভুল ব্যবহার করতে পারেন net sendবা msgnet sendউইন্ডোগুলির শুধুমাত্র পুরানো সংস্করণগুলিতে কাজ করে:

net send localhost Some message to display

এটি চালানোর জন্য মেসেঞ্জার পরিষেবাতেও নির্ভর করে।

নতুন সংস্করণগুলির জন্য (এক্সপি এবং সামনের দিকে, স্পষ্টতই):

msg "%username%" Some message to display

এটি লক্ষ করা উচিত যে ব্যবহার করে প্রেরিত একটি বার্তা বাক্স msg.exeকেবল 60 সেকেন্ডের জন্য স্থায়ী হবে। এটি তবে /time:xxস্যুইচ দিয়ে ওভাররাইড করা যেতে পারে ।


2
আপনি স্থানীয় ব্যবহারকারী -% USERNAME% পেতে এনভির ভেরিয়েবল ব্যবহার করতে পারেন। msg.exe আমার এক্সপি হোম মেশিনে রয়েছে, তবে আমি বিবরণী শুনেছি যে এটি ভিস্তার প্রতিটি সংস্করণে নেই। আমি বিশ্বাস করি যে আজকাল নেট SEND এর পিছনের পরিষেবাটি অক্ষম রয়েছে।
ম্যাকডোয়েল

ঠিক আছে, ধন্যবাদ, এনভ্যাভারটি ভুলে গেছেন (খুব কম%% ইউজারপ্রাইফিল% এবং ব্যাচগুলিতে আমার নিজস্ব সংজ্ঞায়িতগুলি ব্যবহার করুন :))। মজার, যদিও আপনি ম্যাসেঞ্জার পরিষেবা সম্পর্কে ঠিক বলেছেন। এটি আমার এক্সপি ভিএম-তেও বিদ্যমান নেই, তবে নেট প্রেরণ এখনও বিদ্যমান। msg.exe সেখানে কাজ করে, যদিও।
জো

18
আমি ভেবেছিলাম যে একটি কার্যকর বিকল্প উত্তর থেকে অনুপস্থিত এবং এটি সরবরাহ করেছে। এখানে কিছু ভুল নেই। আপনার কিছু করার জন্য জোর বোধ করার দরকার নেই এবং আমি কোনওভাবেই এই কথাটি বলছি না যে বফলিনের ভুল। আমি কেবলমাত্র একটি অপশন যুক্ত করছি যা এমন প্রশ্নের উত্তরগুলির জন্য পুরোপুরি জরিমানা উচিত যাগুলির একটিও নির্দিষ্ট উত্তর নেই। তদ্ব্যতীত, আপনি সম্ভবত এই প্রশ্নটি নিয়ে একমাত্র নন এবং অন্যরা যে কোনও কারণে ভিবিএস স্ক্রিপ্টটি ব্যবহার করতে চান না। এটি একটি সম্প্রদায় সাইট, সম্পূর্ণ আপনার নয় :-)
জয়ে

8
আমি নিজের জন্য এটি কেবলমাত্র একটি দূরবর্তী শেল থেকে আমার গার্লফ্রেন্ডের পিসিতে একটি "আমি আপনাকে ভালোবাসি" বার্তা স্প্যান করতে ব্যবহার করেছি।
ক্যামিলো মার্টিন

1
উইন্ডোজ 8 এবং 10 এ আমি উইন্ডোজ বিষয়গুলির সংস্করণ পেয়েছি। আমার জন্য এটি প্রো নয় তবে বাড়িতে কাজ করে। অন্যরা এটি হোম প্রিমিয়াম এবং এন্টারপ্রাইজ, আলটিমেট ইত্যাদিতে কাজ করে বলে জানিয়েছে seems মনে হয় সরল পুরানো বাড়িটি এটি পায় না (এটি সিস্টেম 32 এ বিদ্যমান নয়, তবে যুক্ত করা যেতে পারে)।
shox

84

একটু ফ্ল্যাশ প্রদর্শিত হতে পারে, তবে কোনও টেম্প ফাইলের প্রয়োজন নেই। (আইআইআরসি) আই 5 এর যুগে কোথাও ফিরে যাওয়ার পুরো পথ ব্যবহার করা উচিত।

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
eye_mew

@ আই_মেউ সম্ভবত আপনার ^কোনও ব্যাটের ফাইলে সেই পালানো অক্ষরগুলি সরিয়ে ফেলতে হবে
ফুকলভ

1
এটি আমার জন্য একটি ব্যাচের ফাইল থেকে পুরোপুরি কাজ করেছিল (আমি উইন্ডোজ on এ আছি) আমরা কি কোনও জাভাস্ক্রিপ্ট এভাবে চালাতে পারি? আমরা কীভাবে ব্যাচের ফাইলে মানগুলি ফিরিয়ে দেব?
জেরি যেরেমিয়া

1
আপনি যে কাজগুলি করতে পারেন তার কয়েকটি বিস্ময়কর উদাহরণ এখানে দেওয়া হয়েছে: ডসটিপস / ফরম / ভিউটোপিক.পিপি? T = 5311 লোকালডেটটাইম উদাহরণটি একটি মান দেয়। ধারণার জন্য ধন্যবাদ!
জেরি যিরমিয়

মাইক্রোসফ্ট দ্বারা সার্ভার সাইড জাভাস্ক্রিপ্ট শীতল হওয়ার আগে কুল নোড.জেস - তাদের জন্য একটি মিসড সুযোগ।
ড্যানিয়েল সোকলোভস্কি

76

এটি অন্য কমান্ড প্রম্পট উইন্ডোটিকে পপ-আপ করবে:

START CMD /C "ECHO My Popup Message && PAUSE"

1
অসাধারণ টাই! আমি এটি কয়েকটি অন্যান্য স্ক্রিপ্টগুলিতে ব্যবহার করতে পারি :)
বিলি

3
আরও ভাল বিকল্পটি হ'ল:, বার্তাটির অক্ষরের পরিমাণ +2 এ start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"পরিবর্তন করুন cols=18। এবং lines=2লাইনের পরিমাণ যাই হোক না কেন + 1।
এন্ডের_সাইক্লিথ

1
PAUSE থেকে মুক্তি পান এবং ব্যবহার করুনcmd /k
আর্টিলিয়াস

34

চেষ্টা করুন:

Msg * "insert your message here" 

আপনি যদি উইন্ডোজ এক্সপির কমান্ড ডট কম ব্যবহার করেন তবে এটি একটি বার্তা বাক্স খুলবে।

একটি নতুন সেন্টিমিডি উইন্ডো খোলার পক্ষে আপনি যা যা চেয়েছিলেন ঠিক তা নয়, আমি সংগ্রহ করি। এছাড়াও আপনি ব্যবহার করতে পারে VB স্ক্রিপ্ট , এবং আপনার .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 হিসাবে সংরক্ষণ হয় না) ), তারপরে সংরক্ষণ ক্লিক করুন!


3
আপনার <script/>ট্যাগ লাগবে না ।
surfasb

? -> এমএসজি * <পাঠ্য>
ZEE

@ZEE আপনি যদি কেবলমাত্র ব্যবহার করেন তবে আপনাকে msg *একটি বার্তা প্রবেশের জন্য অনুরোধ জানানো হবে তারপরে সিটিটিএল -জেড। আপনি এখানে লাইন ব্রেকগুলি প্রবেশ করতে পারেন যা আপনার বার্তায় প্রদর্শিত হবে।
ব্যবহারকারী5910

30

আরও কয়েকটি উপায়।

1) গেইকিয়েস্ট এবং হ্যাকিস্ট - এটি আইএক্সপ্রেসটি ছোট এক্সি তৈরি করতে ব্যবহার করে যা একটি একক বোতামের সাহায্যে একটি পপ-আপ তৈরি করে ( এটি আরও দুটি ধরণের পপ-আপ বার্তা তৈরি করতে পারে )। এক্সপি এবং উপরের প্রতিটি উইন্ডোতে কাজ করে:

;@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) ব্যবহার 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)। ওপি অনুরোধ সত্ত্বেও এটি আবার জাভাস্ক্রিপ্ট ব্যবহার করে তবে এটি ব্যাট হওয়ায় এটিকে কোনও উদ্বেগ ছাড়াই ব্যাট ফাইল বলা যেতে পারে। এটি পপআপ ব্যবহার করে যা আরও জনপ্রিয় এমএসজিবিএক্সের চেয়ে কিছুটা বেশি নিয়ন্ত্রণের অনুমতি দেয় । এটি ডাব্লুএসএইচ ব্যবহার করে তবে উপরের উদাহরণের মতো এমএসএইচটিএ নয়।

 @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) hisএখন এটি মুছে ফেলা যায় এমন .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) এবং dbenham এর পদ্ধতির এখানে দেখা

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

29

এইভাবে আপনার ব্যাচ ফাইলটি একটি ভিবিএস স্ক্রিপ্ট তৈরি করবে এবং একটি পপআপ প্রদর্শন করবে। এটি চলার পরে, ব্যাচ ফাইলটি মধ্যবর্তী ফাইলটি মুছবে।

এমএসজিবিএক্স ব্যবহারের সুবিধাটি হ'ল এটি সত্যই প্রচলিত (শিরোনাম, আইকন পরিবর্তন করুন) যখন এমএসজি.এক্সি তেমন কিছু নয়।

echo MSGBOX "YOUR MESSAGE" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q

15

এখানে একটি পাওয়ারশেল বৈকল্পিক যা উইন্ডোটি তৈরি করার আগে লোডিং অ্যাসেমব্লিগুলির প্রয়োজন হয় না, তবে এটি @Npocmaka দ্বারা পোস্ট করা পাওয়ারশেল মেসেজবক্স কমান্ডের চেয়ে লক্ষণীয়ভাবে ধীর (50 + 50%) চালায়:

powershell (New-Object -ComObject Wscript.Shell).Popup("""Operation Completed""",0,"""Done""",0x0)

ডায়লগটিতে আইকনগুলি প্রদর্শন করতে আপনি "0x0" থেকে নীচের মানটিতে শেষ প্যারামিটারটি পরিবর্তন করতে পারেন ( আরও রেফারেন্সের জন্য পপআপ পদ্ধতিটি দেখুন ):

        স্টপ0x10 থামুন
        প্রশ্নবোধক0x20 প্রশ্ন চিহ্ন
        বিস্ময়বোধক চিহ্ন0x30 বিস্মৃত চিহ্ন
        তথ্য চিহ্ন 0x40 তথ্য চিহ্ন Mark

মাইক্রোসফ্ট টেকনেট আর্টিকেল থেকে গৃহীত পাওয়ার পাওয়ার টিপ: পপ-আপ উইন্ডো প্রদর্শনের জন্য পাওয়ারশেল ব্যবহার করুন


10
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  

2
আপনি কীভাবে ভিবি স্ক্রিপ্ট থেকে প্রতিক্রিয়া পাবেন?
স্যুট বয় অ্যাপস

7

Msg * "আপনার বার্তাটি এখানে sertোকান"

ঠিকঠাক কাজ করে, কেবল নোটপ্যাডে .bat ফাইল হিসাবে সংরক্ষণ করুন বা ফর্ম্যাটটি "সমস্ত ফাইল" এ সেট করা আছে তা নিশ্চিত করুন


দস্তাবেজগুলি বলে যে "*" "নির্দিষ্ট সার্ভারে সমস্ত সেশনে বার্তা প্রেরণ করবে", অর্থাৎ। টার্মিনাল পরিষেবাদি বা দ্রুত ব্যবহারকারী স্যুইচিংয়ে বিরতি ফেলবে
ফাউল

2
আপনি ব্যবহার করতে পারেনmsg %SESSIONNAME% msg
পাখি

5
msg * /time:0 /w Hello everybody!

ঠিক আছে ক্লিক না হওয়া পর্যন্ত এই বার্তাটি চিরকাল অপেক্ষা করে (এটি ডিফল্টভাবে মাত্র এক মিনিট স্থায়ী হয়) এবং উইন্ডোজ 8.1-এ দুর্দান্ত কাজ করে works


একই উত্তরটি ২০০৯ সাল থেকে উপস্থিত রয়েছে
jeb

ওফস> _ <দয়া করে এটি মুছুন :)
মোঃ

? কীভাবে পাঠ্যে নতুন-লাইন (ফাঁকা লাইনগুলি)
sertোকানো যায়

3
msg * /time:0 /w <C:\Somewhere\Message.txtযেখানে ফাইলটিতে সাধারণ পাঠ্য রয়েছে (সিআরএলএফ সহ)।
MoE bis

4

এটি করার জন্য, আপনার একটি ছোট প্রোগ্রাম থাকা দরকার যা একটি বার্তা বাক্স প্রদর্শন করে এবং এটি আপনার ব্যাচ ফাইল থেকে চালায়।

আপনি একটি কনসোল উইন্ডোটি খুলতে পারেন যা প্রম্পট প্রদর্শিত হলেও এটি কেবলমাত্র cmd.exe এবং বন্ধুবান্ধব ব্যবহার করে একটি জিইউআই বার্তা বাক্স পাওয়া সম্ভব নয়, এএফাইক।


একটি প্রম্পট এটি করতে পারে ... আপনার কি আরও আছে?
বিলি

1
প্রতিধ্বনি "xx", বিরতি, বা সেট / পি var = প্রম্পট
হ'ল

@ নিকেল-: এভাবে ভাল?
ম্যাক

3

আমি এখানে থেকে URLbox.exe নামের একটি ইউটিলিটি ব্যবহার করছি: http://www.paulsadowski.com/WSH/cmdprogs.htm


সিম্যানটেক অ্যান্টিভাইরাস অনুসারে, এই সংরক্ষণাগারে একটি ট্রোজান রয়েছে।
ডেভিড

3
@ ডেভিড - আমার অ্যান্টিভাইরাস দ্বারা প্রতিকূল হিসাবে চিহ্নিত ব্যাচ এবং পাঠ্য ফাইল রয়েছে। আসলে আমার কাছে এভিজি অ্যান্টিভাইরাস একটি কমান্ড-লাইন নির্দেশ পেয়েছিল এবং দাবি করেছে যে এটি একটি ভাইরাস।
জেমস কে

2
এফডব্লিউআইডাব্লু ভাইরাস টোটাল বলেছে যে 11/51 ভাইরাস চেকাররা সেই ফাইলটিতে ভাইরাস সনাক্ত করেছে: virustotal.com/en/file/…
ম্যাথু লক ২

3

আপনি Zenity ব্যবহার করতে পারেন । জেনটিটি কমান্ড-লাইন এবং শেল স্ক্রিপ্টগুলিতে ডায়ালগ বাক্সগুলি কার্যকর করার অনুমতি দেয়। আরও তথ্য উইকিপিডিয়ায় পাওয়া যাবে

এটি ক্রস প্ল্যাটফর্ম: উইন্ডোজের জন্য একটি উইন্ডোজ ইনস্টলার এখানে পাওয়া যাবে


3

@ ফাউলের ​​উত্তর অনুসরণ করে, আপনি নিম্নলিখিতটি ব্যবহার করে কেবল 10 সেকেন্ডের জন্য উপস্থিত হতে সময়সীমা নিয়ে এটি উন্নত করতে পারেন:

mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"

এখানে দেখুন আরো বিস্তারিত জানার জন্য।


ভাইরাস এক্সডি হিসাবে সনাক্ত হয়েছে
জুলিয়ান

2

আপনি ব্যবহারকারীর থেকে dll ফাংশন শুরু করতে পারেন d

Rundll32.exe user32.dll, মেসেজবক্স (0, "পাঠ্য", "শিরোনাম পাঠ্য, top শীর্ষস্থানীয় মেসেজবক্স ইত্যাদির জন্য অতিরিক্ত পতাকা})

আমার ফোন থেকে এটি টাইপ করা, আমাকে বিচার করবেন না ... অন্যথায় আমি অতিরিক্ত পতাকাগুলি লিঙ্ক করব।


আমি rundll32.exe user32.dll,MessageBoxA Xরান বাক্সে এটি করার সময় শিরোনাম হিসাবে এক্স সহ একটি বার্তাবক্স প্রদর্শন করতে পারি। আমি এক্সকে যা করি তা বিবেচনা করেই আমি এটিকে একাধিক পরামিতি হিসাবে ব্যাখ্যা করতে পারি না - সবকিছু শিরোনামে যায়। সুতরাং rundll32.exe user32.dll,MessageBoxA (0, "MyTitle", "MyText", 0)একটি শিরোনাম সহ একটি বার্তাবক্স প্রদর্শন করে (0, "MyTitle", "MyText", 0) তবে আমি এটি কমান্ড লাইন থেকে সমস্ত কাজ করতে পারি না - কেবল রান বাক্স থেকে। কমান্ড লাইনে এটি কিছুই করে না। এটি কোনও কমান্ড লাইন থেকে বা কোনও ব্যাচ ফাইল থেকে বা কেবল রান বাক্স থেকে নিশ্চিতভাবে কাজ করে?
জেরি যেরেমিয়া

rundll32.exe ডক অনুযায়ী কেবলমাত্র সেই প্রক্রিয়াগুলি চালিত করতে পারে যা বিশেষভাবে এই উদ্দেশ্যে তৈরি করা হয়েছিল, কারণ তাদের অবশ্যই " alচ্ছিক যুক্তি" অংশটি পার্স করতে হবে। মেসেজবক্স-ইশ ফাংশনগুলি এভাবে ডিজাইন করা হয়নি। এটি উইন + আর (রান বাক্স) এর মাধ্যমে কেন কাজ করে, এটি এখনও একটি বড় প্রশ্ন!
ইউরি পোজনিয়াক

1

** * / সার্ভারে १२.২.০.০.১ আপনার বার্তাটি এখানে টাইপ করুন


উইন্ডোজ সেমিডি.এক্সি বলেছেন: 'msg' কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড, অপারেবল প্রোগ্রাম বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়।
অ্যান্টনি হাটজোপল্লো


@ পেটিড এক্সপি এবং তারপরে, আসলে
জেসান ফাফন

@ জিসানফাফন না, এক্সপি-এর পরে এটি বন্ধ করে দেওয়া হয়েছিল ... আমার মনে হয় আপনি এক্সপি এবং এর আগে
বোঝাচ্ছেন

উইন্ডোজ ৮.১-এ @ পেটিডিড where msgফিরে আসে C:\Windows\System32\msg.exe। আমার মনে হয় আপনি ভাবছেনnet send
জেসান ফাফন

1

এই অ্যাপ্লিকেশনটি এটি করতে পারে, যদি আপনি আপনার ব্যাচ ফাইলগুলিকে এক্সিকিউটেবল ফাইলগুলিতে রূপান্তর করেন।


  1. সরল মেসেজবক্স

    %extd% /messagebox Title Text
    

  1. ত্রুটি বার্তাবক্স

    %extd% /messagebox  Error "Error message" 16
    
  2. আবার চেষ্টা করুন মেসেজবক্স

    %extd% /messagebox Title "Try again or Cancel" 5
    

৪) "আমাকে আর কখনও জিজ্ঞাসা করবেন না" মেসেজবাক্স

%extd% /messageboxcheck Title Message 0 {73E8105A-7AD2-4335-B694-94F837A38E79}

0

একটি ভাল বিকল্প

set my_message=Hello world&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"


বর্ণনা: বার্তাগুলিতে
lines= লাইনগুলির পরিমাণ, যোগফলের
cols=পরিমাণ 1 , এবং আরও 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.
প্রতিধ্বনিত করেছে তবে

@cdlvcdlv আমি উত্তর আপডেট করেছি। এটি এখন সবার জন্য কাজ করা উচিত, এটি সংশোধন করুন।
টুডো

এটি সত্যই কাজ করে ... শর্ত থাকে যে xবর্তমান ডিরেক্টরিতে কোনও ফাইল নেই বা আপনি এটি হারাতে আপত্তি করবেন না।
cdlvcdlv

আপনি একটি নিখুঁতভাবে কার্যকরী মন্তব্য করেছেন এবং এটি ভেঙে দিয়েছেন। তারপরে আপনি কিছু মান যুক্ত করার চেষ্টা করেছিলেন (আমি আপনাকে তা মঞ্জুর করব) তবে তারপরে কোনও সম্ভাবনা নেই বলে কোনও ফাইল হারাতে হবে। যদি কেউ, (কৌতূহলের বাইরে) আপনার কোডটিকে এমন একটি দুর্ভাগ্য দিয়ে চেষ্টা করে থাকে তবে এটি ভাল জন্য ফাইলটি হারাবে। তদতিরিক্ত, যদি নামের একটি ফোল্ডার উপস্থিত থাকে তবে xআপনার কমান্ডটি কেবল ব্যর্থ হবে। আমাকে ধন্যবাদ দেবেন না এবং দয়া করে আপনার কোডটি ঠিক করুন। এমনকি আপনার ওয়ান-লাইনার ব্যবহার করার দরকার নেই। এবং যদি আপনি মনে করেন যে আপনার কোডটি খুব ভাল, দয়া করে কোড পর্যালোচনাতে এটি পোস্ট করুন ।
cdlvcdlv

কি কৃতজ্ঞতা .... আমি ভেঙেছি, তবে আপডেট করেছি, ব্যাখ্যা করেছি এবং এমনকি স্বয়ংক্রিয় সমাধানও দিয়েছি ... (তবে আপনার মতো লোক রয়েছে, যাদের আমি সন্তুষ্ট করতে পারি না)। শুভকামনা
টুডো

0

এখানে আমার ব্যাচের স্ক্রিপ্টটি আমি ভাল উত্তরগুলির উপর ভিত্তি করে এখানে এবং অন্যান্য পোস্টে একসাথে রেখেছি

আপনি শিরোনাম সময়সীমা নির্ধারণ করতে পারেন এবং এমনকি এটির জন্য নতুন লাইনের জন্য সময় নির্ধারণ করতে ঘুমাতে পারেন

এটি পপআপ নাম দিন এবং আপনার পিসিতে বিশ্বব্যাপী কাজ করতে আপনার উইন্ডোজ পাথ ফোল্ডারে রাখুন

উদাহরণস্বরূপ 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>

-3

কোনও ভিএম এর অভ্যন্তরে পপআপ করার জন্য এটি কেবলমাত্র প্রয়োজন, তাই প্রযুক্তিগতভাবে, এখানে কিছু কোড থাকা উচিত:

if %machine_type% == virtual_machine then
   echo message box code
else
   continue normal installation code

ডাউনভোট কারণ ইনস্টলেশনটি চালিয়ে যাওয়া হবে না যদি (% মেশিন_প্রকার% == ভার্চুয়াল_ম্যাচিন) == সত্য
অ্যানিয়ন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.