কমান্ড বনাম। START / WAIT বিকল্পের সাথে কল করুন


149

WAIT বিকল্পের সাহায্যে START কমান্ডটি কীভাবে হয়

START /wait notepad.exe 
START /wait  notepad.exe 

... একটি ক্যাল কমান্ড ব্যবহার করা থেকে আলাদা?

CALL notepad.exe 
CALL notepad.exe 

এমন পরিস্থিতি কি আছে যখন একজন অন্যরকম আচরণ করে যে অন্যটি মৃত্যুদন্ড কার্যকর করা হচ্ছে তার উপর নির্ভর করে?


উত্তর:


183

জন্য EXE ফাইল, আমি পার্থক্য প্রায় গুরুত্বহীন হয় ঠাউর।
তবে একটি এক্সি শুরু করতে আপনার এমনকি প্রয়োজন হয় না CALL

যখন অন্য ব্যাচ শুরু এটা একটি বড় পার্থক্য
যেমন CALLএটি একই উইন্ডোতে শুরু হবে নামক ব্যাচ একই পরিবর্তনশীল প্রসঙ্গে অ্যাক্সেস আছে।
সুতরাং এটি পরিবর্তনশীলও পরিবর্তন করতে পারে যা কলারকে প্রভাবিত করে।

STARTকল করা ব্যাচের জন্য একটি নতুন সেমিডি.এক্স্সি তৈরি করবে এবং / বি ছাড়াই এটি একটি নতুন উইন্ডো খুলবে।
এটি একটি নতুন প্রসঙ্গ হিসাবে, ভেরিয়েবলগুলি ভাগ করা যায় না।

পার্থক্য

ব্যবহারstart /wait <prog>
- এনভায়রনমেন্ট ভেরিয়েবল এর পরিবর্তনগুলি হারিয়ে যখন <prog>প্রান্ত
- আহ্বানকারী অপেক্ষা করছে পর্যন্ত <prog>সমাপ্ত হয়

ব্যবহারcall <prog>
- জন্য EXE এটা ommited করা যেতে পারে, কারণ এটি মাত্র শুরু সমান <prog>
- একটি জন্য EXE-প্রগ আহ্বানকারী ব্যাচ অপেক্ষা করছে বা শুরু EXE অ্যাসিঙ্ক্রোনাস কিন্তু আচরণের উপর নির্ভর করে EXE নিজেই।
- ব্যাচ ফাইলগুলির জন্য, কলার ব্যাচটি অব্যাহত থাকে, যখন <batch-file>কলটি শেষ হয়, কল ব্যতীত কলার ব্যাচে ফিরে আসবে না

সংযোজন:

ব্যবহার CALLকরে প্যারামিটারগুলি পরিবর্তন করতে পারে (ব্যাচ এবং এক্সিপি ফাইলগুলির জন্য), তবে কেবল যখন সেগুলিতে বা শতাংশের চিহ্ন থাকে।

call myProg param1 param^^2 "param^3" %%path%%

(ব্যাচের ফাইলের মধ্যে থেকে) এ প্রসারিত হবে

myProg param1 param2 param^^3 <content of path>

25
START / WAIT ব্যবহার করে একটি ফাইল.ব্যাট সম্পাদন করার সময় আপনাকে কেবল START / WAIT "file.bat" এর পরিবর্তে START / WAIT cmd / c "file.bat" নির্দিষ্ট করতে হবে, অন্যথায় file.bat এর জন্য তৈরি সেমিডি উইন্ডোটি উন্মুক্ত থাকবে
ফ্রিংকব্রেভ

5
আপনি সিএলএল এবং START এর মধ্যে তুলনাটি এখানে খুঁজে পেতে পারেন: ss64.com/nt/start.html ("স্টার্ট / ওয়েট" এবং "START বনাম কল" বিভাগের সাথে আজ আপডেট হয়েছে)
আলফ্রেডো ক্যাপোবিয়ানচি

আমার প্রিয় start /wait /b cmd /c <batchfile.bat>কারণ ব্যাচ ফাইলগুলি একই কমান্ড উইন্ডোয় একের পর এক চলে
linux64kb

@ লিনাক্স 64৪ কেবি, তবে ব্যাচ ফাইলগুলির জন্য এটি প্রয়োজনীয় নয়, আপনার কেবল দরকারcall batchfile.bat
জেব

@ জেব ট্রু আমি এটিকে পছন্দ করি কারণ প্রতিটি ব্যাচ ফাইলটি একটি পৃথক কমান্ড শেল পরিবেশে চলবে, কলিং শেল থেকে উত্তরাধিকার সূত্রগুলি এবং প্রাথমিক মানগুলিতে পরিবর্তনগুলি ব্যাচ শেষ হওয়ার পরে হারিয়ে যাবে -> প্রতিটি পরপর রান করার পরে সেখানে কোনও আবর্জনা অবশিষ্ট থাকবে না। আরেকটি জয় হ'ল, আপনাকে আপনার স্ক্রিপ্টগুলিতে পরিবর্তনগুলি পুনরায় সেট করার দরকার নেই।
linux64kb

17

আমি মনে করি যে তাদের সাধারণত পারফরম্যান্স করা উচিত, তবে কিছু পার্থক্য রয়েছে। STARTসাধারণত অ্যাপ্লিকেশন শুরু করতে বা প্রদত্ত ফাইল প্রকারের জন্য ডিফল্ট অ্যাপ্লিকেশন শুরু করতে ব্যবহৃত হয়। আপনি যদি START http://mywebsite.comএটি না করেন যে উপায় START iexplore.exe http://mywebsite.com

START myworddoc.docxমাইক্রোসফ্ট ওয়ার্ড শুরু করবে এবং মাইওয়ার্ডডোক.ডোক্স খুলবে CALL myworddoc.docxএকই জিনিসটি করে ... তবে STARTউইন্ডো অবস্থা এবং সেই প্রকৃতির জিনিসগুলির জন্য আরও বিকল্প সরবরাহ করে। এটি প্রক্রিয়াটির অগ্রাধিকার এবং স্বীকৃতি সেট করার অনুমতি দেয়।

সংক্ষেপে, শুরুতে প্রদত্ত অতিরিক্ত বিকল্পগুলি দেওয়া, এটি আপনার পছন্দের সরঞ্জাম হওয়া উচিত।

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
  [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
  [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
  [command/program] [parameters]

"title"     Title to display in window title bar.
path        Starting directory.
B           Start application without creating a new window. The
            application has ^C handling ignored. Unless the application
            enables ^C processing, ^Break is the only way to interrupt
            the application.
I           The new environment will be the original environment passed
            to the cmd.exe and not the current environment.
MIN         Start window minimized.
MAX         Start window maximized.
SEPARATE    Start 16-bit Windows program in separate memory space.
SHARED      Start 16-bit Windows program in shared memory space.
LOW         Start application in the IDLE priority class.
NORMAL      Start application in the NORMAL priority class.
HIGH        Start application in the HIGH priority class.
REALTIME    Start application in the REALTIME priority class.
ABOVENORMAL Start application in the ABOVENORMAL priority class.
BELOWNORMAL Start application in the BELOWNORMAL priority class.
NODE        Specifies the preferred Non-Uniform Memory Architecture (NUMA)
            node as a decimal integer.
AFFINITY    Specifies the processor affinity mask as a hexadecimal number.
            The process is restricted to running on these processors.

            The affinity mask is interpreted differently when /AFFINITY and
            /NODE are combined.  Specify the affinity mask as if the NUMA
            node's processor mask is right shifted to begin at bit zero.
            The process is restricted to running on those processors in
            common between the specified affinity mask and the NUMA node.
            If no processors are in common, the process is restricted to
            running on the specified NUMA node.
WAIT        Start application and wait for it to terminate.

11

উদাহরণস্বরূপ কল করার ক্ষেত্রে callএবং এর মধ্যে একটি দরকারী পার্থক্য রয়েছে , গ্যারি তার উইন্ডোজ-কমান্ড-লাইন-থেকে-অ্যাপ্লিকেশন-প্রস্থান-অ্যাপ্লিকেশন--র-কোড- উত্তর - এর জবাবের মধ্যেও উল্লেখ করেছেনstart /waitregsvr32.exe /s

call regsvr32.exe /s broken.dll
echo %errorlevel%

সর্বদা 0 কিন্তু ফিরে আসবে

start /wait regsvr32.exe /s broken.dll
echo %errorlevel%

regsvr32.exe থেকে ত্রুটি স্তর ফিরে আসবে


8

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

বলুন যে আপনার কাছে একটি এক্সি ফাইল রয়েছে যা LongRunningTask.exe নামে একটি দীর্ঘ কাজ সম্পাদন করে

আপনি যদি ব্যাট ফাইল থেকে সরাসরি এপিকে কল করেন তবে লংআরনিংটাস্কের কেবল প্রথম কলটি সফল হবে, যখন বাকিরা একটি ওএস ত্রুটি পাবে "ফাইলটি ইতিমধ্যে প্রক্রিয়া দ্বারা ব্যবহৃত"

আপনি যদি এই আদেশটি ব্যবহার করেন:

স্টার্ট / বি / ওয়েট "" "লংরানিংটাস্ক.এক্সএই" "পরামিতি"

আপনি ব্যাট এবং এক্সিপের একাধিক উদাহরণ চালাতে সক্ষম হবেন, যখন বাকি কমান্ডগুলি চালিয়ে যাওয়ার আগে ব্যাটটি চালিয়ে যাওয়ার আগে টাস্কটি শেষ হওয়ার অপেক্ষায় থাকবে। / বি বিকল্পটি অন্য উইন্ডো তৈরি করা এড়ানো, কমান্ডের কাজ করার জন্য খালি উদ্ধৃতিগুলির প্রয়োজন, নীচের রেফারেন্সটি দেখুন।

মনে রাখবেন যে আপনি যদি শুরুতে / WAIT ব্যবহার না করে থাকেন তবে ব্যাং ফাইলের অবশিষ্ট কমান্ডের তুলনায় লংআরনিংটাস্ক একই সময়ে কার্যকর করা হবে, সুতরাং যদি এই কমান্ডগুলির মধ্যে একটিতে লংআরনিংটাইকের আউটপুট প্রয়োজন হয় তবে সমস্যা তৈরি হতে পারে

পুনরায় শুরু হচ্ছে:

এটি সমান্তরালভাবে চালানো যায় না:

  • LongRunningTask.exe কল করুন

এটি সমান্তরালভাবে চলবে এবং ঠিক আছে যতক্ষণ না কমান্ডের আউটপুট এবং ব্যাট ফাইলের বাকী অংশের মধ্যে কোনও ডেটা নির্ভরতা নেই:

  • স্টার্ট / বি "" "লং রুনিংটাস্ক.এক্সএই" "পরামিতি"

এটি সমান্তরালভাবে চলবে এবং টাস্কটি শেষ হওয়ার জন্য অপেক্ষা করবে, যাতে আপনি আউটপুটটি ব্যবহার করতে পারেন:

  • স্টার্ট / বি / ওয়েট "" "লংরানিংটাস্ক.এক্সএই" "পরামিতি"

স্টার্ট কমান্ডের জন্য রেফারেন্স: প্রোগ্রাম শুরু হওয়ার পরে কনসোলটি খোলা না রেখে আমি কীভাবে একটি ব্যাচ ফাইল থেকে একটি প্রোগ্রাম চালাতে পারি?


6

কল

পিতামাত ব্যাচের প্রোগ্রামটি বন্ধ না করেই অন্য একটি ব্যাচের প্রোগ্রাম কল করে কল কমান্ড কলটির লক্ষ্য হিসাবে লেবেলকে গ্রহণ করে। স্ক্রিপ্ট বা ব্যাচ ফাইলের বাইরে ব্যবহার করার সময় কমান্ড-লাইনে কলটির কোনও প্রভাব নেই। https://technet.microsoft.com/en-us/library/bb490873.aspx

শুরু

একটি নির্দিষ্ট প্রোগ্রাম বা কমান্ড চালানোর জন্য একটি পৃথক কমান্ড প্রম্পট উইন্ডো শুরু করে । প্যারামিটার ছাড়াই ব্যবহৃত, শুরু করে একটি দ্বিতীয় কমান্ড প্রম্পট উইন্ডো খোলে। https://technet.microsoft.com/en-us/library/bb491005.aspx


-1

এটি একটি পুরানো থ্রেড, তবে আমি কেবল এই পরিস্থিতির মুখোমুখি হয়েছি এবং এর চারপাশে একটি ঝরঝরে পথ আবিষ্কার করেছি। আমি একটি সেটআপ.এক্সই চালানোর চেষ্টা করছিলাম, তবে ফোকাসটি সেটআপ.এক্সই শেষ হওয়ার অপেক্ষা না করে স্ক্রিপ্টের পরবর্তী লাইনে ফিরে আসছিল। আমি কোনও ভাগ্য ছাড়াই উপরের সমাধানগুলি চেষ্টা করেছিলাম।

শেষ পর্যন্ত, আরও মাধ্যমে কমান্ডটি পাইপ করল কৌশলটি।

setup.exe {আর্গুমেন্ট} | অধিক

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