উইন্ডোজ কমান্ড লাইনে ব্যবহারকারী প্রম্পটের জন্য দুটি কমান্ড উপলব্ধ:
/P
সক্ষম উইন্ডোজ এনটি সংস্করণে সক্ষম কমান্ড এক্সটেনশানগুলি সহ এবং বিকল্পগুলির সাথে সেট করুন
- উইন্ডোজ ভিস্তা এবং পরে উইন্ডোজ সংস্করণগুলিতে পিসি ব্যবহারকারীদের জন্য এবং উইন্ডোজ সার্ভার 2003 এবং পরে উইন্ডোজের সার্ভার সংস্করণগুলিতে ডিফল্টরূপে পছন্দ.অ্যাক্সেস উপলব্ধ।
সেটটি উইন্ডোজ কমান্ড প্রসেসরের অভ্যন্তরীণ কমান্ড cmd.exe
। /P
স্ট্রিংয়ের জন্য কোনও ব্যবহারকারীকে অনুরোধ করার বিকল্পটি কেবল সক্ষম কমান্ড এক্সটেনশনগুলির সাথেই পাওয়া যায় যা ডিফল্টরূপে সক্ষম করা হয় অন্যথায় প্রায় কোনও ব্যাচ ফাইল আজকাল আর কাজ করবে না।
পছন্দ.exe হল একটি পৃথক কনসোল অ্যাপ্লিকেশন (বহিরাগত কমান্ড) এর মধ্যে অবস্থিত %SystemRoot%\System32
। উইন্ডোজ এক্সপি-তে অন্য অনেক কমান্ডের মতো উইন্ডোজ এক্সপি ব্যবহারের জন্য উইন্ডোজ এক্সপি মেশিনে উইন্ডোজ এক্সপি মেশিনে choice.exe
ডিরেক্টরিতে অনুলিপি করা যেতে পারে %SystemRoot%\System32
তবে উইন্ডোজ সার্ভার 2003 এ ডিফল্টরূপে উপলব্ধ।
নিম্নলিখিত কারণগুলির কারণে SET / P ব্যবহারের চেয়ে পছন্দগুলি পছন্দ করার পক্ষে সেরা অনুশীলন :
- পছন্দ শুধুমাত্র চাবি গ্রহণ (যথাক্রমে অক্ষর থেকে পড়তে stdin ) বিকল্প পর নিদিষ্ট
/C
(এবং Ctrl+C) এবং একটি ত্রুটি হুইসেল তাহলে ব্যবহারকারী ছাপাখানা একটি ভুল চাবি আউটপুট।
- পছন্দসই গ্রহণযোগ্যগুলির মধ্যে একটি ছাড়া অন্য কোনও কী চাপার প্রয়োজন নেই। পছন্দসই কী টিপে গেলে পছন্দগুলি তত্ক্ষণাত্ প্রস্থান হয় যখন SET / P এর প্রয়োজন হয় যে ব্যবহারকারী RETURNবা এর সাথে ইনপুট শেষ করে ENTER।
- এটা তোলে সম্ভব পছন্দ স্বয়ংক্রিয়ভাবে ব্যবহারকারীর জন্য অপেক্ষা না করেই কিছু সেকেন্ড পরে ডিফল্ট বিকল্প চালিয়ে যাওয়ার জন্য একটি ডিফল্ট বিকল্প এবং একটি টাইমআউটের সংজ্ঞায়িত করতে।
- আউটপুট যা কিছু মত ব্যবহার প্রম্পট ব্যাচ ফাইল কল অন্য ব্যাচ ফাইল থেকে স্বয়ংক্রিয়ভাবে প্রম্পট উত্তর দিলে উত্তম
echo Y | call PromptExample.bat
ব্যবহারের পছন্দ ।
- ব্যবহারকারীর পছন্দের মূল্যায়ন CHOICE এর সাথে অনেক সহজ কারণ CHOICE চাপযুক্ত কী (অক্ষর) অনুসারে একটি মান যা ERRORLEVEL এর জন্য নির্ধারিত হয়েছে যা সহজেই পরবর্তী মূল্যায়ন করা যেতে পারে তার সাথে প্রস্থান করে।
- পরিবেশ ব্যবহৃত পরিবর্তনশীল সেট / পি সংজ্ঞায়িত করা ব্যবহারকারী এইমাত্র কী হিট যদি RETURNবা ENTERতা হলে ব্যবহারকারীকে সামনে সংজ্ঞায়িত করা হয় নি। এসইটি / পি কমান্ড লাইনে ব্যবহৃত পরিবেশের পরিবর্তনশীল তার বর্তমান মানটি যদি সংজ্ঞায়িত করা হয় এবং ব্যবহারকারী কেবলমাত্র RETURNবা টিপে রাখে ENTER।
- ব্যবহারকারীর এসইটি / পি দিয়ে অনুরোধ করাতে কোনও স্ট্রিং সহ কিছু প্রবেশের স্বাধীনতা রয়েছে যা পরে
cmd
বাক্য ফাইলের নির্বাহের ফলে একটি সিনট্যাক্স ত্রুটির কারণে বা কমান্ডের প্রয়োগে ব্যাচ ফাইলের মধ্যে অন্তর্ভুক্ত না হওয়ার ফলে ঘটেছিল ভাল কোডেড ব্যাচ ফাইল। ভুল বা ইচ্ছাকৃত ভুল ব্যবহারকারী ইনপুট দ্বারা SET / P সুরক্ষার জন্য কিছু প্রচেষ্টা দরকার ।
এখানে পছন্দের ব্যবহার করে একটি প্রম্পট উদাহরণ পছন্দ এবং অন্যথায় সেট / পি উপর choice.exe
উইন্ডোজ চলমান ব্যবহৃত কম্পিউটারে না পাওয়া যায়।
@echo off
echo This is an example for prompting a user.
echo/
if exist "%SystemRoot%\System32\choice.exe" goto UseChoice
setlocal EnableExtensions EnableDelayedExpansion
:UseSetPrompt
set "UserChoice=N"
set /P "UserChoice=Are you sure [Y/N]? "
set "UserChoice=!UserChoice: =!"
if /I "!UserChoice!" == "N" endlocal & goto :EOF
if /I not "!UserChoice!" == "Y" goto UseSetPrompt
endlocal
goto Continue
:UseChoice
%SystemRoot%\System32\choice.exe /C YN /N /M "Are you sure [Y/N]? "
if errorlevel 2 goto :EOF
:Continue
echo So your are sure. Okay, let's go ...
দ্রষ্টব্য: এই ব্যাচ ফাইলটি কমান্ড এক্সটেনশনগুলি ব্যবহার করে যা উইন্ডোজ 95/98 / ME কমান্ড ইন্টারপ্রেটার হিসাবে ব্যবহার command.com
না করে ব্যবহার করে cmd.exe
।
উইন্ডোজ এনটি 4/2000 / এক্সপি set "UserChoice=!UserChoice: =!"
দিয়ে এই ব্যাচ ফাইলটি কল করা সম্ভব করার জন্য কমান্ড লাইন যুক্ত করা হয়েছে echo Y | call PromptExample.bat
এবং এর ব্যবহারের প্রয়োজন নেই echo Y| call PromptExample.bat
। দুটি স্ট্রিং তুলনা চালানোর আগে এটি STDIN থেকে পঠিত স্ট্রিং থেকে সমস্ত স্পেস মুছে ফেলে ।
echo Y | call PromptExample.bat
ওয়াইSPACE পরিবেশগত পরিবর্তনশীল হিসাবে নির্ধারিত হওয়ার ফলাফল UserChoice
। এর ফলে দু'বার প্রম্পট প্রক্রিয়াজাতকরণের কারণ "Y "
হ'ল না কেস-সংবেদনশীল সমান "N"
এবং "Y"
না সমস্ত জায়গাগুলি মোছা ছাড়াই। তাই UserChoice
সঙ্গে ওয়াইSPACE হিসাবে মান বিকল্প প্রম্পট একটি দ্বিতীয় সময় চলমান স্থাপিত হবে N
যেমন দ্বিতীয় প্রম্পট সঞ্চালনের উপর ব্যাচ ফাইল এর ডিফল্ট হিসাবে সংজ্ঞায়িত করা হয় যা ব্যাচ ফাইল প্রক্রিয়াকরণ একটি অপ্রত্যাশিত প্রস্থান পরবর্তী ফলাফল নেই। হ্যাঁ, এসইটি / পি এর নিরাপদ ব্যবহার সত্যই জটিল, তাইনা?
অপশনগুলির তালিকা থেকে ব্যবহারকারীকে পছন্দের জন্য প্রেরণের জন্য SET / P এবং CHOICE ব্যবহারের আরও তথ্যের জন্য উত্তর দেখুন কীভাবে একটি ভুল ব্যবহারকারীর ইনপুটটিতে উইন্ডোজ কমান্ড ইন্টারপ্রেটারকে ব্যাচ ফাইল সম্পাদন থেকে বিরত রাখা যায়?
আরও কিছু ইঙ্গিত:
- আইএফ তুলনা অপারেটরের বাম এবং ডান দুটি স্ট্রিংয়ের সাথে ডাবল কোটস সহ তুলনা করে । সুতরাং কেস-অবশ তুলনা মান নয়
UserChoice
সঙ্গে N
এবং Y
কিন্তু এর মান UserChoice
দ্বারা বেষ্টিত "
সঙ্গে "N"
এবং "Y"
।
- যদি তুলনা অপারেটরদের
EQU
এবং NEQ
সীমার মধ্যে দুটি পূর্ণসংখ্যার তুলনা -2147483648 2147483647 করার জন্য এবং দুটি স্ট্রিং তুলনা না প্রাথমিক ডিজাইন করা হয়। EQU
এবং NEQ
স্ট্রিং তুলনার জন্যও কাজ করে, তবে বাম স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তর করার অকেজো প্রয়াসে ডাবল উদ্ধৃতিতে স্ট্রিংগুলির তুলনা করার ফলস্বরূপ। EQU
এবং NEQ
কেবল সক্ষম কমান্ড এক্সটেনশনের সাহায্যে ব্যবহার করা যেতে পারে। স্ট্রিং তুলনা জন্য তুলনা অপারেটরদের হয় ==
এবং not ... ==
এমনকি প্রতিবন্ধী কমান্ড এক্সটেনশন হিসাবে এমনকি কাজ command.com
MS-DOS এর এবং Windows 95/98 এর / আমার ইতিমধ্যেই তাদের সমর্থন করে। আইএফ তুলনা অপারেটরগুলির আরও বিশদের জন্য উইন্ডোজ ব্যাচের ফাইলগুলিতে প্রতীক NEQ, LSS, GTR ইত্যাদির সমতুল্য দেখুন ।
- কমান্ড
goto :EOF
সত্যিই প্রস্থান ব্যাচ ফাইল প্রক্রিয়াকরণ কমান্ড এক্সটেনশন সক্ষম করা আবশ্যক। আরও তথ্যের জন্য দেখুন কোথায় যান: ইওএফ ফিরে আসে?
ব্যবহৃত কমান্ডগুলি এবং সেগুলি কীভাবে কাজ করে তা বোঝার জন্য একটি কমান্ড প্রম্পট উইন্ডোটি খুলুন, নিম্নলিখিত কমান্ডগুলি সম্পাদন করুন এবং প্রতিটি কমান্ডের জন্য প্রদর্শিত সমস্ত সহায়তা পৃষ্ঠা খুব সাবধানতার সাথে পড়ুন।
choice /?
echo /?
endlocal /?
goto /?
if /?
set /?
setlocal /?
আরো দেখুন:
SET AREYOUSURE=N
কমান্ড উইন্ডোতে আপনি যদি ইতিমধ্যে স্ক্রিপ্টটি চালিয়ে যান তবে পছন্দটি সাফ করার জন্য প্রম্পটের আগে কেবলমাত্র আমি যুক্ত করব । এটি ছাড়াই পূর্বনির্ধারিত পছন্দটি ডিফল্ট থাকবে।