ব্যাচের ফাইল খোলা না রেখে কীভাবে পটভূমিতে একটি প্রক্রিয়া চালানো যায়?


9

আমার একটি উইন্ডোজ পরিষেবা আছে (বাঁশ ইন্টিগ্রেশন সার্ভার) যা সেই স্ক্রিপ্টের সাবপ্রসেস (একটি বিল্ড জব) হিসাবে একটি ব্যাচ ফাইল চালায়। সেই ব্যাচের ফাইলের মধ্যেই আমি একটি প্রক্রিয়া শুরু করতে সক্ষম হতে চাই (আসুন একে ওয়ার্কারপ্রসেস.এক্সই বলি) এবং সেই প্রক্রিয়াটি ব্যাকগ্রাউন্ডে চালানো হোক। এই সব ভাল, আমি ব্যবহার করেছি:

start "title" /B workerprocess.exe

এটি সব ভাল এবং ভাল। সমস্যাটি হ'ল এটি তখন বিল্ড জবটির সমাপ্তি ধরে রাখে। সুতরাং ব্যাচের স্ক্রিপ্টটি শেষ হয়েছে, কিন্তু কর্মীপ্রসেস.এক্সই উপ-প্রসেসের কারণে, পরিষেবাটি (বাঁশ) জানেন না যে এটি শেষ হয়েছে: এটি এখনও ওয়ার্কারপ্রসেস.অ্যাক্সের জন্য (এবং আউটপুট প্রদর্শন করে) অপেক্ষা করে।

আমি স্টার্ট কমান্ডের জন্য ডকুমেন্টেশনে সন্ধান করেছি এবং আমি যা চাই তা করতে কিছুই দেখতে পাচ্ছি না। আমি এই প্রশ্নটি দেখেছি তবে এটি সত্যিই কোনও উপকারে আসেনি - পরিষেবাটি এখনও প্রক্রিয়াটি শেষ হওয়ার জন্য অপেক্ষা করে শেষ হয়।

সুতরাং আমি সংক্ষিপ্তভাবে অনুমান করি: আমি কীভাবে কোনও ব্যাচ স্ক্রিপ্ট থেকে একটি নতুন প্রক্রিয়া চালাতে পারি যাতে এটি সম্পূর্ণ বিচ্ছিন্ন হয়ে যায় এবং ব্যাচের স্ক্রিপ্টটি সম্পূর্ণ হওয়ার অপেক্ষায় ঘটে যাওয়া কোনও কিছুই ধরে রাখে না।


1
আপনি কি "/ B" পরামিতি ছাড়াই চেষ্টা করেছেন যাতে এটি একই কমান্ড উইন্ডোতে প্রক্রিয়া শুরু না করে?
জোশ

@ জোশআর, এটি পরিবর্তন করেছে। পরিষেবাটি আর প্রক্রিয়া থেকে আউটপুট গ্রহণ করে না, তবে এটি এখনও অবরুদ্ধ।
জ্যাক স্কট

উত্তর:


2

আপনি কি লুকানো স্টার্ট (এইচএসটিআর্ট) চেষ্টা করেছেন ? (ব্যয় $ 20)

আমি ব্যক্তিগতভাবে এটি উইন্ডোটি লুকিয়ে রেখে প্রতি ঘন্টা ব্যাচের কাজ চালানোর জন্য ব্যবহার করি। তারা আরও উল্লেখ করে যে আপনি প্যারামিটার হিসাবে ক্রমানুসারে কমান্ডগুলি চালাতে পারেন (বা ডিফল্টরূপে, আমি ধরে নিই) অ্যাসিঙ্ক্রোনালি চালাতে পারি। আমি জানি না কীভাবে এটি সিপিইউ, মেমরি বা ডিস্কের ক্ষেত্রে আপনার বিতর্ককে প্রভাবিত করবে ... তবে সফ্টওয়্যারটি আপনাকে ক্রিয়া সম্পাদনের আগে কিছুটা সময় অপেক্ষা করার বিকল্পও দেয়।


আমি যখন 2013 সালের সেপ্টেম্বরে আমার উত্তরটি লিখেছিলাম তখন পণ্যটি চারদিকে মুক্ত ছিল। দুঃখের বিষয় তারা একটি মূল্য নিচ্ছে।
সূর্য

3

সমস্ত লিঙ্কযুক্ত স্ক্রিপ্টগুলি আপনার সুবিধামত নামের সাথে ডাউনলোড করে সংরক্ষণ করা যায়।

1) আইএক্সপ্রেস সমাধান - আর্গুমেন্ট হিসাবে কেবল আদেশ এবং তার যুক্তিগুলি গ্রহণ করে।

ব্যবহারের উদাহরণ:

call hidder.bat myBat.bat  myexe.exe
call myexe.exe

2) SCHTASKS - আবার মাত্র দুটি আর্গুমেন্ট গ্রহণ করে - কমান্ড এবং আর্গুমেন্টগুলি elev এছাড়াও এটি পরীক্ষা করুন যে এটি এলিভেটেড অনুমতি দিয়ে শুরু হয়েছে এবং সম্ভব হলে WEVTUTIL কমান্ডের মাধ্যমে প্রক্রিয়াটির PID পায় gets

ব্যবহারের উদাহরণ:

call SCHPhidden.bat "cmd /c myBat.bat"  "argument"

3) 'WScript.Shell' - স্ক্রিপ্টটি 'WScript.Shell' এর পূর্ণ মোড়কযুক্ত এবং প্রতিটি সম্ভাব্য বিকল্প কমান্ড লাইন বিকল্পগুলির মাধ্যমে সেট করা যেতে পারে t এটি একটি jscript / ব্যাচের সংকর এবং একটি ব্যাট হিসাবে বলা যেতে পারে।

ব্যবহারের উদাহরণ (আরও তথ্যের জন্য '-h' দিয়ে সহায়তা মুদ্রণ করুন):

call ShellRunJS.bat "notepad.exe" -style 0 -wait no 

4) 'উইন 32_প্রসেস স্টার্টআপ' - আবার পুরো র‍্যাপার এবং সমস্ত বিকল্প কমান্ড লাইন আর্গুমেন্টের মাধ্যমে অ্যাক্সেসযোগ্য his এই সময় এটি কিছু জেএসক্রিপ্ট এবং কোডের কয়েকটি ভিবিএস স্ক্রিপ্ট সহ ডাব্লুএসএফ / ব্যাচ সংকর - তবে এটি শুরু হওয়া প্রক্রিয়ার পিআইডি ফেরত দেয়। যদি প্রক্রিয়া আইডি এক্স / ওয়াই স্থানাঙ্কের মতো কয়েকটি বিকল্প ব্যবহার করা যেতে পারে hidden

ব্যবহারের উদাহরণ (আরও তথ্যের জন্য '-h' দিয়ে সহায়তা মুদ্রণ করুন) এর জন্য এক্সিকিউটেবল / স্ক্রিপ্টের পুরো পথের প্রয়োজন হবে যদি এটি না থাকে %path%:

call win32process.bat "notepad" -arguments "/A openFile.txt"  -showWindow 0 -title "notepad"

5)। নেট সমাধান । প্রসেসস্টার্টআইএনফো বিকল্পের বেশিরভাগ বিকল্প ব্যবহার করা হয় (তবে শেষে আমি সমস্ত কিছু অন্তর্ভুক্ত করতে খুব ক্লান্ত হয়ে পড়েছিলাম):

ব্যবহারের উদাহরণ (আরও তথ্যের জন্য '-h' দিয়ে সহায়তা মুদ্রণ করুন):

call ProcessStartJS.bat "notepad" -arguments "/A openFile.txt"  -style Hidden -directory "." -title "notepad" -priority Normal

লিঙ্কটি পাওয়া যায় নি
রহিল উজির

@ রহিলওয়াজির - সম্পাদিত।
npocmaka

1
আমি এগুলি কিছু চেষ্টা করেছিলাম - আমি মনে করি বিশদ চুক্তিটি বিশদ পরিষ্কার করা দরকার। কেবল প্রথম পদ্ধতির দিকে তাকানো: আইই এক্সপ্রেস, লিঙ্কটি হিডার করা হয় above উপরের উদাহরণটি অন্য কিছু ব্যবহার করে bat আমি যখন স্ক্রিপ্টটি চালালাম, এটি আমাকে EXE জিজ্ঞাসা করতে ব্যর্থ হয়েছিল যা উপরে উল্লিখিত নেই। গিথুব এ মার্কডাউন থাকলে ঠিক আছে, তবে তা নেই। অবশেষে, এটি চালনা করে কিছু .DDF ফাইল তৈরি হয়েছিল, তবে অন্য কিছুই নয় ....
জোজি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.