উইন্ডোজ সিএমডি ব্যাচ, START এবং আউটপুট পুনঃনির্দেশ


34

আমি ব্যাচ ফাইল থেকে একই সাথে দুটি প্রোগ্রাম চালাতে চাই এবং প্রথম প্রোগ্রামের আউটপুটটিকে একটি টেক্সট ফাইলে পুনর্নির্দেশ করতে চাই:

start python 1st.py arg1 arg2 > out.txt
start 2nd.exe %1 arg2 arg3

প্রোগ্রামগুলি প্রত্যাশা অনুযায়ী চলাকালীন, সমস্ত আউটপুট stdout এ প্রদর্শিত হবে।


এটি কাজ করা উচিত। কিছু না জেনে, আমি আশ্চর্য হই যে 1st.py আউটপুট সহ মজার কিছু করছে কিনা।
zpletan

না, তবে এটি স্ট্যাডারকে লিখেছে।
কেউ

এজন্যই কেবল স্টডআউটকে >পুনঃনির্দেশ করে (আমার মনে হয়)। যাই হোক না কেন, দেখে মনে হচ্ছে আপনার যা প্রয়োজন তা ইতিমধ্যে আপনার কাছে রয়েছে।
zpletan

উত্তর:


35

আপনার এটি এইভাবে করার প্রয়োজন হতে পারে:

start cmd /c python 1st.py arg1 arg2 ^> out.txt

আপনাকে ধন্যবাদ, কিন্তু এটা আমার জন্য কাজ করে না (out.txt এমনকি স্থানীয় ডিরেক্টরির মধ্যে নির্মিত হয় না)
কেউ

আমি এটি সিএসক্রিপ্ট এবং একটি ভিবিস্ক্রিপ্ট দিয়ে পরীক্ষা করেছি তাই ধারণাটি দুর্দান্ত। আপনি কি আপনার কমান্ড লাইনে এমন কিছু "অতিরিক্ত" করছেন যা এখানে তালিকাভুক্ত নয়, ডাবল কোটের মতো?
প্যাট্রিক সিমুর

দুঃখিত, কিছু মারাত্মক ভুল হয়েছে - এটি কার্যকর!
কেউ

@ পেট্রিক সিমুর, আপনার উত্তরের জন্য আপনাকে ধন্যবাদ! .Bat ফাইল ছাড়া আমি কীভাবে একই জিনিস করতে পারি? এটি সেমিডিডি থেকে কাজ করে না: পাইথন.এক্সে ^> পাইথন_আউট.টেক্সট । আমার একটি ত্রুটি হয়েছিল: পাইথন.এক্সি: ফাইল '>' খুলতে পারে না: [ত্রুটি 22] অবৈধ যুক্তি
নিও

7

পুনর্নির্দেশটি startকমান্ডটিতে প্রয়োগ করা হয় , তবে কোনওভাবেই cmd.exeএটি চালায় না এমন পরিস্থিতিতে।

যদি >অপারেটরটি পালিয়ে যায় তবে সবকিছুই কাজ করা উচিত:

start 1st.py arg1 arg2 ^> out.txt

(আপনি যদি স্ট্যাডারকেও পুনঃনির্দেশ করতে চান তবে এর জন্য ব্যবহার করুন 2^>))


4
আপনাকে ধন্যবাদ, তবে এটি আমার পক্ষে কার্যকর হয় না।
কেউ

5

অতিরিক্ত হিসাবে, আপনি যদি stderr এবং stdout উভয়ই পুনর্নির্দেশ করতে চান তবে এটি আমার জন্য কাজ করে

কল বিলম্ব করুন bat 1 ^> log.txt xt 2 ^> ^ & ^ 1 কল করুন

দেখে মনে হচ্ছে প্রতিটি চরিত্রই মূলত পালাতে হবে। এই কমান্ডটি সাধারণত এটির মতো দেখায়:

delay.bat 1> log.txt 2> & 1


5

আমার জন্য কৌতুকটি কী আদেশটি একটি পৃথক ব্যাচের ফাইলে স্থানান্তরিত করছিল:

rem this first batch file triggers the second one:
start the_second.bat arg1 arg2 out.txt

the_second.bat এর পরে এটির মতো দেখাচ্ছে:

python 1st.py %1 %2 > %3

সঠিক উত্তরের তুলনায় এটি একটি খুব অকার্যকর কাজ।
ডেভিডপস্টিল

2
"সঠিক উত্তর" আমার জন্য একটি অবিস্মরণীয় সমস্যা নিয়ে কাজ করে নি এবং আমি ভেবেছিলাম এটি একটি সমাধান হতে পারে লোকেরা কমপক্ষে এটি জানতে চাইতে পারে।
ফ্লোরিয়ান স্ট্রাব

আমার দ্বিমত আছে কমান্ডের অক্ষরগুলি থেকে বাঁচার সঠিক উপায় শেখা একটি আরও ভাল ধারণা।
ডেভিডপস্টিল

অনুগ্রহ করে আমাকে কীভাবে >> ব্যবহার করে আউটপুট সংযুক্ত করে এড়াতে হবে তা শিখিয়ে দিন।
ফ্লোরিয়ান স্ট্রাব

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