ইউনিক্স শেলের এক্সেকের সমান উইন্ডোজ সিএমডি আছে কি?


9

উইন্ডোজে ইউনিক্স শেলের "এক্সিকিউটিভ" এর সমতুল্য কি আছে? মূলত, আমি একটি নতুন প্রক্রিয়া জালিয়াতি এড়ানো প্রয়োজন, যাতে ইনপুট / আউটপুট পাইপ সংরক্ষণ করা হবে, পাশাপাশি প্রক্রিয়া আইডি।

সম্পাদনা:

সুতরাং, এখানে আমার সমস্যা। আমার একটি প্রক্রিয়া A রয়েছে যা একটি স্ক্রিপ্ট শুরু করে, এবং এই স্ক্রিপ্টটি প্রক্রিয়া বি দ্বারা শেষ হয় বি। এর সমস্ত আউটপুট পাওয়ার জন্য আমার এ দরকার, পাশাপাশি এটি প্রসেস প্রসেসটি মেরে বি কে হত্যা করতে সক্ষম হবে (স্ক্রিপ্ট) ।

ইউনিক্সে, বি দিয়ে মৃত্যুদণ্ড কার্যকর করা execসেই কাজটি করে।


কোনও সমতুল্য নেই, কমপক্ষে স্ট্যান্ডার্ড উইন্ডোজ কমান্ড এবং প্রোগ্রামগুলি ব্যবহার না করে।
জন গার্ডেনিয়ার্স

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

প্রক্রিয়া A ইতিমধ্যে বি এর সমস্ত আউটপুট পাওয়া উচিত, যদি না স্ক্রিপ্ট এটিকে ওভাররাইড করে। এটি কি কাজ করছে না?
হ্যারি জনস্টন

পিতা-মাতার প্রক্রিয়াটি শেষ হওয়ার পরে কোনও শিশু প্রক্রিয়াটি মারা যাওয়ার ব্যবস্থা করার জন্য উইন 32 এপিআই ব্যবহার করা সম্ভব, তবে সেখানে কোনও অন্তর্নির্মিত কমান্ড-লাইন বিকল্প আফাইক নেই। যদি আমি কিছু উত্স কোড সরবরাহ করি (ভিজ্যুয়াল সি ++ এর জন্য) আপনি কি এটি তৈরি করতে সক্ষম?
হ্যারি জনস্টন

@ হ্যারি আমি জাভা থেকে স্ক্রিপ্টটি তৈরি করছি, সুতরাং, যদি ধারণাটি প্রক্রিয়া এ-তে সেই উইন 32 এপিআই ব্যবহার করার জন্য হয় তবে আমি ভয় করি যে কাজ করার সম্ভাবনা নেই, যদিও আমি এই প্রচেষ্টাটির জন্য কৃতজ্ঞ। কেবল এটি ব্যাখ্যা করা ভাল নয় এবং এটি উত্তর হিসাবে আমি গ্রহণ করব।
ড্যানিয়েল সি। সোব্রাল

উত্তর:


7

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

এটি উইন্ডোজে কোনও ভাষায় স্ক্রিপ্টগুলির জন্য ওয়ান-লাইনার র‌্যাপার স্ক্রিপ্টগুলি লেখা অসম্ভব করে তোলে। আপনি সর্বদা সেই "ব্যাচের চাকুরী সমাপ্ত করবেন?" Ctrl + C তে বিকাশ করা এবং ব্যাচ প্রক্রিয়াটি হ্রাস করা (টাস্ক ম্যানেজারের কাছ থেকে, Ctrl + C দিয়ে নয়) শিশু প্রক্রিয়াটিকে হত্যা করবে না। আমি এই মোড়কটি করতে এখন একটি সি টেম্পলেট ফাইলের সন্ধান করছি।

আপডেট: উইন্ডোজটির _execv()এমএসভিসিআরটিটিতে পসিক্স সামঞ্জস্যতা স্তর রয়েছে তবে আফিক (এটি পরীক্ষা করা হয়নি) এটি কেবল একটি মোড়ক হিসাবে CreateProcessএটি সর্বদা একটি নতুন প্রক্রিয়া তৈরি করবে, এটি বর্তমান প্রক্রিয়াটি প্রতিস্থাপন করতে পারে না।


2

আমি মনে করি কল আপনি যা করতে চান তা করে তবে আমি 100% নিশ্চিত নই।


4
আপনি যদি cmd.exe এর নতুন উদাহরণ চালু না করেই অন্য একটি ব্যাচ ফাইলটি চালাতে চান, কলটি সঠিক উত্তর।
হ্যারি জনস্টন

1

আপনি একটি ডায়নামিক ব্যাচ কমান্ড তৈরি করতে পারেন এবং এটি পূর্ববর্তী ক্রিয়াকলাপের আউটপুটের ভিত্তিতে চালিত করতে পারেন। আমি নিশ্চিত না যে এটি আপনার ক্ষেত্রে সমাধান হতে পারে তবে নিম্নলিখিত কোডটি ঠিক কাজ করে।

SET yourDynamicCommand=SET var=1
%yourDynamicCommand%
ECHO var's value is %var%

এটি এর মতো কিছু করে না exec...
জাকুজে

-1
  • সম্পাদন ব্যাচ ফাইল :call
  • এক্সি -ফাইলগুলি কার্যকর করুন : কোনও আদেশের প্রয়োজন নেই, সরাসরি এটিকে কল করুন/path/to/exe/something.exe
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.