উইন্ডোজ ব্যাচ ফাইল চালানো অবিচ্ছিন্নভাবে আদেশ দেয়


186

বলুন, আমি যদি

  • foo.exe
  • bar.exe
  • baz.exe

পূর্ববর্তী প্রোগ্রামটি থামার অপেক্ষা না করে আমি কীভাবে একটি ব্যাচ ফাইল থেকে এই সমস্তটি চালাতে পারি?

উত্তর:


254

STARTপ্রতিটি প্রোগ্রাম চালাতে কমান্ড ব্যবহার করে আপনার যা প্রয়োজন তা পাওয়া উচিত:

START "title" [/D path] [options] "command" [parameters]

প্রতিটি STARTঅনুরোধটি তার প্যারামিটারে প্রদত্ত কমান্ডটি চালায় এবং অবিলম্বে ফিরে আসে, যদি না একটি /WAITস্যুইচ দিয়ে কার্যকর করা হয় ।

এটি কমান্ড-লাইন অ্যাপ্লিকেশনগুলিতে প্রযোজ্য। কমান্ড লাইনবিহীন অ্যাপগুলি তত্ক্ষণাত ততক্ষণে ফিরে আসে, তাই নিশ্চিত হয়ে আপনি যদি সমস্ত অ্যাসিনক্রোনালি চালাতে চান তবে ব্যবহার করুন START


ঠিক আছে, ধন্যবাদ. আমার প্রতিটি এন্ট্রি helpসাবধানে পড়া উচিত ছিল। :)
ধনী

8
আমি আসলে অন্য দিন এটি নিয়ে সমস্যায় পড়েছিলাম। পারফরম্যান্স পরীক্ষার জন্য আমাকে 30 এক্সপ্লোরার উইন্ডো চালু করতে হয়েছিল। কাজ করেনি এবং এটি দেখার পক্ষে এটি আমার পক্ষে যথেষ্ট গুরুত্বপূর্ণ ছিল না that উইন্ডোটির পরিবর্তে চারপাশে ব্রাউজ করা শুরু করেছিল এবং বেশ কয়েক ঘন্টা পরে আমি যখন এটি বন্ধ করি তখন অন্য একজন পপ আপ হয়! আর আমি কেমন ছিলাম, এটাকে বন্ধ করে দিয়েছি .. আরেকটা পপ আপ! 4-5 উইন্ডো এবং অনেক কি পরে **** আমি লক্ষ্য করেছি ব্যাচফিল এখনও চলছে!
জোনাস বি

3
নির্লজ্জ স্ব-বিজ্ঞাপন: আমি একবারে একটি ব্যাচ তৈরি করেছি যা কেবলমাত্র প্রক্রিয়াগুলির জন্য কিছু ধরণের থ্রেড পুল হিসাবে কাজ করতে সক্ষম: স্ট্যাকওভারফ্লো
জো

4
আপনার যদি যুক্তি সরবরাহ করার প্রয়োজন হয় বা কমান্ডগুলির পথে ফাঁকা স্থান থাকে তবে আপনার উদ্ধৃতি যুক্ত করতে ভুলবেন না। এই ক্ষেত্রে আপনাকে খোলার কনসোল উইন্ডোটির জন্য একটি শিরোনামও সরবরাহ করতে হবে: "" "[কমান্ডের পথে]" শুরু করুন [কমান্ড আর্কস]
পিয়েরলাইগি

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

68

পূর্ববর্তী উত্তরগুলির একটি সংযুক্ত করে, আপনি চেষ্টা করতে পারেন start /b cmd /c foo.exe

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

@start /b cmd /c java -version
@start /b cmd /c gradle -version
@start /b cmd /c groovy -version
@start /b cmd /c grails -version

আপনার যদি প্রসেস এক্সপ্লোরার (সিস্টার্নালস) এর মতো কিছু থাকে তবে আপনি কয়েকটি বাচ্চা সেন্টিমিড দেখতে পাবেন। আউটপুট স্ক্রিনে মুদ্রণ করবে যা তারা শেষ করবে।

start /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

cmd /c : Carries out the command specified by string and then terminates

13
এটি কনসোল প্রতিধ্বনি হওয়া থেকে বাধা দেয়। ব্যাচ স্ক্রিপ্টগুলিতে, কখনও কখনও আপনি echo offশুরুতে দেখতে পাবেন যা আপনি যখন স্ক্রিপ্টটি কার্যকর করবেন তখন সমস্ত কমান্ড কনসোল প্রতিধ্বনিত হতে আটকাবে। @অনুরূপ কিন্তু ঠিক যে একক কমান্ড জন্য। সুতরাং, কখনও কখনও আপনি দেখতে পাবেন @echo off
djKianoosh

36

আপনি নতুন উইন্ডো চালু না করে ব্যাকগ্রাউন্ড প্রক্রিয়াগুলি স্প্যান করতে স্টার্ট কমান্ডটি ব্যবহার করতে পারেন:

start /b foo.exe

নতুন প্রক্রিয়াটি সিটিআরএল-সি দিয়ে বাধাগ্রস্ত হবে না; আপনি কেবল এটি সিটিআরএল-BREAK দিয়ে হত্যা করতে পারেন (বা উইন্ডোটি বন্ধ করে বা টাস্ক ম্যানেজারের মাধ্যমে))


5
BREAKকীবোর্ডে আজকাল কোথায় ?
ব্যবহারকারী 2023370

1
@ ব্যবহারকারী2023370 এখনও বিরতি কীতে রয়েছে। বেশিরভাগ ল্যাপটপে যাদের নির্দিষ্ট কীগুলির অভাব থাকে তারা লুকানো কী সংমিশ্রণকে সমর্থন করে ।
জেরোল্ডব্রোসর মনিকা


23

নিম্নলিখিত লাইনের সাহায্যে একটি ব্যাচ ফাইল তৈরি করুন:

start foo.exe
start bar.exe
start baz.exe 

শুরু কমান্ড তাই সব 3 কমান্ড দ্বারা অ্যাসিঙ্ক্রোনাস চালানো হবে, একটি নতুন উইন্ডোতে আপনার কমান্ড রান।


17

শুরু কমান্ডটি ব্যবহার করুন :

start [programPath]

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

start "[title]" "[program path]"

আপনার যদি যুক্তি সরবরাহ করতে হয় তবে এগুলি শেষে যুক্ত করুন (কমান্ডের উদ্ধৃতিগুলির বাইরে)

start "[title]" "[program path]" [list of command args]

নতুন কনসোল উইন্ডোটি খুলতে এড়াতে / b বিকল্পটি ব্যবহার করুন (তবে সেক্ষেত্রে আপনি CTRL-C ব্যবহার করে অ্যাপ্লিকেশনটিতে বাধা দিতে পারবেন না)


10

তৃতীয় (এবং সম্ভাব্য অনেক সহজ) বিকল্প রয়েছে। আপনি যদি একক প্রোগ্রামের একাধিক উদাহরণ সন্ধান করতে চান তবে ইউনিক্স-স্টাইলের কমান্ড প্রসেসরের মতো জার্গস বা জিএনইউ সমান্তরাল ব্যবহার করে এটি মোটামুটি সহজবোধ্য প্রক্রিয়া তৈরি করতে পারে।

পিপিএক্স 2 নামে একটি উইন 32 এক্সার্গস ক্লোন রয়েছে যা এটি মোটামুটি সোজা করে তোলে।

উদাহরণস্বরূপ, আপনি যদি ভিডিও ফাইলগুলির একটি ডিরেক্টরি ট্রান্সকোড করতে চান তবে আপনি কমান্ডটি চালাতে পারেন:

dir /b *.mpg |ppx2 -P 4 -I {} -L 1 ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"

এটিকে বাছাই করা, dir /b *.mpgআমার বর্তমান ডিরেক্টরিতে .mpg ফাইলগুলির একটি তালিকা ধরে, |অপারেটর এই তালিকাটিকে পিপিএক্স 2 এ পাইপ দেয়, যা সমান্তরালে সম্পাদন করার জন্য একটি সিরিজ কমান্ড তৈরি করে; -P 4অপারেটর দ্বারা এখানে নির্দিষ্ট হিসাবে 4 । -L 1অপারেটর ppx2 বলে একই সময়ে শুধুমাত্র ffmpeg তালিকা আমাদের ডিরেক্টরি এক লাইন পাঠান।

এর পরে, আপনি কেবল আপনার কমান্ড লাইন ( ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4") লিখুন এবং{} স্বয়ংক্রিয়ভাবে আপনার ডিরেক্টরি তালিকার প্রতিটি লাইনের জন্য প্রতিস্থাপিত হয়।

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


1
সর্বশেষতম xargs win32 পোর্টটি আজকাল ভাল কাজ করে (উইন্ডোজের জন্য গিটের সাথে একটি অন্তর্ভুক্ত)।
পিটার এম

এটি ইউনিকোড অক্ষরযুক্ত ফাইলগুলির সাথে ডিল ব্যর্থ হওয়া ব্যতীত দুর্দান্ত। ইউনিকোড ফাইল সমর্থন করার কোন পরিকল্পনা? ধন্যবাদ।
Gökhan Sever

@ গুখনসাইভার অতীতে আমি পথটির "সংক্ষিপ্ত নাম" ফর্মটি ব্যবহার করে এই সমস্যাটি নিয়ে কাজ করেছি, যা দেখতে সি: G প্রোগ্রা ~ 1 \ উইন্ডো ~ 3 \ মাইপ্রোগ ~ 1.EXE। সুন্দর নয়, তবে এটি কাজ করে।
গলিতফর্ম

-1

আমি কাজ করার মতো কিছুই পেলাম না ব্যাট স্ক্রিপ্টগুলি শুরু করার জন্য পাওয়ারশেল ব্যবহার করে শেষ হয়ে গেলাম .. মাঝে মাঝে এমনকি সিএমডি / সি শুরু করা কেন নিশ্চিত হয় না কেন .. আমি এমনকি স্টার্ট সেন্টিমিডি / সি নোটপ্যাড এবং প্রস্থান করার মতো জিনিস চেষ্টা করেছিলাম

start-Process "c:\BACKUP\PRIVATE\MobaXterm_Portable\MobaXterm_Portable.bat" -WindowStyle Hidden
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.