ব্যাচ ফাইল কার্যকর হওয়ার পরে কীভাবে কনসোলের স্বয়ংক্রিয়ভাবে বন্ধ হওয়া যায় to


509

ফাইলটি কার্যকর হওয়ার পরে কনসোলের স্বয়ংক্রিয়ভাবে বন্ধ হওয়া রোধ করতে কোন ব্যাচ ফাইলের শেষে আমি কমান্ডটি রাখতে পারি?


5
এটি খুব ভাল হবে যদি এটি আবিষ্কার করার উপায় থাকে যে একটি .Cmd ফাইলটি এক্সপ্লোরারটিতে ডাবলক্লিক দ্বারা শুরু করা হয়েছিল (তবে আপনি এটি শেষে থামতে চান) বা এটি ইতিমধ্যে একটি উন্মুক্ত কমান্ড লাইন দ্বারা শুরু করা হয়েছিল কিনা। পরবর্তী ক্ষেত্রে (এবং বিশেষত যদি অন্য কোনও প্রোগ্রাম দ্বারা চালিত হয়) আপনি বিরতি চান না। আমি এই কেসটির জন্য একটি ভাল সমাধান খুঁজে পাইনি (এবং সাধারণত% NOPAUSE% ভেরিয়েবল ব্যবহার করি তবে এটি কেবল প্যারামেট শেলগুলির জন্য নয় প্যারেন্ট প্রোগ্রামগুলির জন্য কাজ করে)।
Nov

1
: একটি উপায় আছে stackoverflow.com/questions/3551888/...
EM0

উত্তর:


634

উইন্ডোজ / ডস ব্যাচের ফাইলগুলিতে:

pause

এটি একটি দুর্দান্ত "Press any key to continue . . . "বার্তা প্রিন্ট করে

অথবা, আপনি যদি "Press any key to continue . . ."বার্তাটি না চান তবে পরিবর্তে এটি করুন:

pause >nul

14
ব্যাট ফাইলে ডাবল ক্লিক করার সময় এখানে দেওয়া কোনও পরামর্শই আমার পক্ষে কাজ করে না। এটি একটি সার্ভার পরিবেশ (এবং আমাকে এতে স্ক্রিপ্ট চালাতে হবে), যাতে তারা আচরণটি পরিবর্তন করতে পারে। এটি আমার লক্ষ্য পরিবর্তন করে না। কমান্ড উইন্ডোটি খোলার জন্য যাতে আমি এটি করতে পারি ত্রুটি বার্তাটি টাইপ করে।
হেনরিক এরল্যান্ডসন

1
হ্যাঁ এটি সবসময় পরিবেশের উপর নির্ভর করে কাজ করে না। আরও দৃ solution় সমাধানের জন্য নীচে আমার উত্তরটি দেখুন। মূলত কেবল সেট করুন / পি এক্সিকিউকি = "চালিয়ে যেতে কোনও কী টিপুন ..."
স্টিভেন মার্ক ফোর্ড

সতর্কতা অবলম্বন করুন, যদি কেউ আপনার স্ক্রিপ্টটি কনসোল উইন্ডো ছাড়াই চালান (উদাহরণস্বরূপ vbscript এর মাধ্যমে), তবে আপনি এটি টাস্ক ম্যানেজারের মাধ্যমে হত্যা না করা পর্যন্ত এটি স্তব্ধ হয়ে যাবে।
অ্যান্ড্রি 21

যদি ম্যাভেনের মতো এর মতো কিছু কল করুন, স্ট্যাকওভারফ্লো.com
কেভিন রায়

বিরতি এখানে পুরোপুরি কাজ করে
ডেভিডসন লিমা

141

সঠিক প্রশ্নের উপর নির্ভর করে!

সাধারণত pauseএকটি .bat ফাইলের মধ্যে কাজটি করে ।

আপনি যদি টাইপ করতে না পারার জন্য cmd.exe বন্ধ না করতে চান cmd /kতবে ফাইলটির শেষে কমান্ডটি ব্যবহার করুন।


2
আপনি যদি রান ডায়ালগের মাধ্যমে উইন্ডোজ কমান্ডগুলি চালাচ্ছেন তবে cmd /kপরিবর্তে আপনার কমান্ডের আগে রাখুন। & cmd /kকাজ করবে না
নওম্যানন 13

68

আপনি যদি চান cmd.exe বন্ধ না করা, এবং টাইপ করতে চালিয়ে যেতে সক্ষম, ব্যবহার করুন cmd /k

/k(উইন্ডোজ ওয়েবসাইট থেকে) কী করে তা পরিষ্কার করার প্রয়োজনীয়তাটি কেবল অনুভব করে :

/k : স্ট্রিং দ্বারা নির্দিষ্ট কমান্ড বহন করে এবং চালিয়ে যায়।

সুতরাং cmd /kব্যাট ফাইলের শেষে ফলোআপ কমান্ড ছাড়াই cmd.exeউইন্ডোটি আরও ব্যবহারের জন্য উন্মুক্ত রাখবে ।

অন্যদিকে pauseএকটি ব্যাচ ফাইলের শেষে সহজেই প্রক্রিয়াটি বিরতি দেওয়া হবে এবং cmd.exeপ্রথম বোতাম টিপে সমাপ্ত হবে


24

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

start "title" call abcd.exe param1 param2  
start "title" call xyz.exe param1 param2

2
আমার ক্ষেত্রে, টার্মিনাল কমান্ডটি চালানোর সময় আমার কিছুটা ত্রুটি হয়েছিল এবং তাই, 'বিরতি' এবং 'সেন্টিমিডি / কে' কমান্ডগুলি ত্রুটির কারণ হিসাবে প্রোগ্রামটি থামাতে আমাকে সহায়তা করেনি। এই উদাহরণটি আমাকে প্রদর্শন করতে সহায়তা করেছিল, আমার ত্রুটি রয়েছে এবং টার্মিনাল থেকেও থামলাম। ধন্যবাদ!
হাওডোউটিটেলফোর্ডএইচিল্ড

19

আপনি যদি মাভেন ব্যবহার করছেন এবং আপনি টাইপিং এড়ানো এবং কনসোলটি বন্ধ করতে চান তবে ফলাফলটি CALLস্ক্রিপ্টে কমান্ডটি ব্যবহার করতে হবে , কেবল 'এমভিএন ক্লিন ইনস্টল' ছাড়াও।

এটি কনসোলটি বন্ধ করে দেবে Like

ECHO This is the wrong exemple
mvn clean install
pause

এটির মতো কনসোলটি উন্মুক্ত থাকবে

ECHO This is the right exemple
CALL mvn clean install
pause

আপনি যদি CALLকমান্ডটি ব্যবহার না করেন তবে কোনও paste উদাহরণ ব্যবহার করবে না।


1
অনেক ধন্যবাদ! কমান্ড ব্যর্থ হলে এটি প্রম্পটটি বন্ধ হতে বাধা দেয়।
তৈমুর গিলারী

1
এটা আমার জন্য কাজ করেছে। আমি 1 ব্যাট ফাইলে 2 ডিফারেনসিটি কমান্ড কার্যকর করতে চেয়েছিলাম। তবে আমার প্রম্পটটি প্রথম আদেশের পরে বন্ধ হয়ে গেছে। নির্বাণ call <myCommand>এই সমস্যার সমাধান হয়েছে: প্রথম মৃত্যুদন্ড পরে আমার প্রম্পট থামিয়েছিল ক্লোজিং
Zombkey

1
সর্বাধিক দরকারী উত্তর
gianmarcocalbi

14

cmd.exeআপনি যে কোডটি কার্যকর করতে চান তার নীচে একটি নতুন লাইন হিসাবে যুক্ত করুন :

c:\Python27\python D:\code\simple_http_server.py

cmd.exe

আমি ঠিক তাই খুঁজছিলাম, ধন্যবাদ! যখন আপনার অজগর স্ক্রিপ্টটি ক্র্যাশ হয়ে যায় তখন "বিরতি" ঠিক তেমন কাজ করে না। আমি যা চেয়েছিলাম তা হ'ল একটি ত্রুটি বার্তা। এখন অবধি আমাকে আমার অজগর স্ক্রিপ্টগুলি কনসোল দিয়ে চালাতে হয়েছিল
ইউজার 70960

তবে এটি সূক্ষ্মভাবে কাজ করে:python script.py %1 && cmd
ব্যবহারকারীর 70960

ধন্যবাদ! এই সাহায্য! আমি পাইথন অ্যাপ্লিকেশন চালানোর জন্য একটি ব্যাচ ফাইল তৈরি করছিলাম।
fez.tival

10

আমার উপায় হ'ল কাজ শেষ করার জন্য একটি আসল ব্যাচ লিখুন ("foo.bat" বলে); তারপরে অন্য একটি "start.bat" তৈরি করুন:

@echo off
cmd /k foo.bat

আমি যখন ওয়ান-টাইম এনভায়রনমেন্ট ভেরিয়েবলগুলি সেট আপ করি তখন এটি অত্যন্ত কার্যকর find


1
আপনি কেবল ফাইলের cmd /kশেষে (কোনও আদেশ ছাড়াই) রাখতে পারেন এবং এটি foo.batচালাতে পারেন। আপনার আলাদা start.batফাইল দরকার নেই ।
এডিটিসি


5

ব্যতীত pause

set /p=

ব্যবহার করা যেতে পারে। এটি ব্যবহারকারীর ইনপুট আশা করে এবং এন্টার চাপলে প্রবাহটি প্রকাশ করবে।

অথবা

runas /user:# "" >nul 2>&1

যা ব্যবহারকারীর ইনপুট থেকে কিছুই প্রদর্শিত হবে এবং কমান্ডের ইতিহাসে থাকবে না the


3

সম্ভাব্যতা 1: কেবল 2 .bat ফাইল তৈরি করুন এবং প্রথমটিতে লিখুন:

start <filename> // name of 2nd batch file
exit

ব্যাচ ফাইল 2 এমন ফাইল যা শেষ পর্যন্ত বন্ধ হবে না। সুতরাং এখন আপনি যখন এনআর 1 ব্যাচ খুলবেন তখন এটি ২ য় এবং ক্লি নিজেই শুরু হবে। যখন ২ য় সমাপ্ত হবে এটি সম্পূর্ণরূপে বন্ধ হবে না (যতক্ষণ না আপনি শেষের দিকে প্রস্থান করবেন না)

সম্ভাব্যতা 2: ব্যাচের ফাইল 1:

call <filename>
cls
echo End of file
pause
<any code you want>

যখন ২ য় ফাইলটি শেষ হবে তখন এটি আবার ১ টি ফাইল করতে এগিয়ে যাবে এবং এর বাকি অংশটিকে আউটপুট দেয়। এটির মাধ্যমে আপনি ত্রুটি হ্যান্ডলারগুলিও তৈরি করতে পারেন। যদি Nr.1 ​​ক্রাশ হয় এটি nr.2 এ যায় এবং এটি প্রদর্শিত হয়


2

এই ছোট্ট হ্যাকটি ব্যবহারকারীকে একটি কী লিখতে এবং এটি ভেরিয়েবল% একজিটি% -তে সংরক্ষণ করতে বলে (এই ভেরিয়েবলটি আপনার পছন্দ মতো কিছু বলা যেতে পারে)।

set /p exitkey= "Press any key to continue..."

এনবি: '=' এর পরে স্থানটি খুব গুরুত্বপূর্ণ



2

আমি জানি আমি দেরি করেছি তবে আমার পছন্দের উপায়টি হ'ল:

:programend
pause>nul
GOTO programend

এইভাবে ব্যবহারকারী প্রবেশ ব্যবহার করে প্রস্থান করতে পারবেন না।


আমি হ্যাঁ মনে করি, এটি কনসোলটি বন্ধ হতে বাধা দেওয়ার একটি বর্ধিত উপায়। এমনকি ব্যবহারকারী কোনও কী টিপলেও কনসোলটি উন্মুক্ত থাকে। ব্যবহারকারী কেবল কনসোল উইন্ডোটি বন্ধ করে প্রস্থান করতে বাধ্য হবে।
ডেকাডেঞ্জা

2

এখানে উত্তরগুলির সাথে সমস্যা ছিল, তাই আমি এটি নিয়ে এসেছি, যা আমার (টিএম) জন্য কাজ করে:

cmd /c node_modules\.bin\tsc
cmd /c node rollup_build.js
pause

1

এটি করার দুটি উপায় রয়েছে যা ব্যবহারের ক্ষেত্রে নির্ভর করে

1) আপনি যদি উইন্ডোজ সিএমডি প্রম্পটটি খোলা রাখতে চান তবে আপনি মৃত্যুদণ্ডের ফলাফল দেখতে এবং এটি পরে বন্ধ করতে পারেন; ব্যবহার

pause

2) আপনি যদি উইন্ডোজ সিএমডি প্রম্পটটি খোলা থাকার চান এবং আপনাকে কিছু কমান্ড আফটারওয়ার্ড কার্যকর করতে দেয়; ব্যবহার

cmd

এখানে চিত্র বর্ণনা লিখুন


1

সহজ, আপনার ব্যাটের শেষ লাইনে সেন্টিমিটার যুক্ত করুন, তবে! আপনি যদি নিজের সিস্টেমের পথটি পুনরায় সেট করে বা সাফ করেন তবে আপনাকে অবশ্যই আপনার সেন্টিমিডিটি পুরো পথ দিয়ে শুরু করতে হবে, যেমন:

%windir%\system32\cmd.exe

উদাহরণস্বরূপ, জেডকেকে পুরানো সংস্করণে পুনরায় সেট করতে আমার কাছে একটি ব্যাট ফাইল রয়েছে:

PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe

যেহেতু আমি সিস্টেমের পথটি পুনরায় সেট করেছি, আমাকে পুরো পাথ দিয়ে cmd চালাতে হবে, বা সিস্টেমটি cmd.exe খুঁজে পাবে না, এটি cmd চালাতে ব্যর্থ হবে, এবং কেবল উইন্ডোটি বন্ধ করবে, এবং আপনি ত্রুটিটি দেখতে পাচ্ছেন না _ ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.