2010-05-04 13 views
5

मेरे पास एक सेवा चल रही है जो सेवा में वापस आने से पहले एक टेक्स्ट स्ट्रीम को संशोधित करने के लिए बाहरी प्रक्रिया का आह्वान कर सकती है। पाठ स्ट्रीम सेवा से बाहरी प्रक्रिया में stdout पर सौंपी जाती है और संशोधित परिणाम stdin पर सेवा से पढ़ा जाता है। बाहरी प्रक्रिया (कमांड) दूसरे शब्दों में टेक्स्ट "फिल्टर" के रूप में उपयोग की जा सकती है। मैं टेक्स्ट स्ट्रीम को संशोधित करने के लिए एक पावरहेल स्क्रिप्ट का उपयोग करना चाहता हूं। मैं "powerhell -executionpolicy बाईपास -noninteractive ./myscript.ps1" कमांड का उपयोग कर 2008r2 जीतने पर सेवा से सफलतापूर्वक एक स्क्रिप्ट लॉन्च कर सकता हूं।शक्तियों के लिए Stdin स्क्रिप्ट

मैं लेखन-होस्ट cmdlet का उपयोग कर stdout पर सेवा में स्क्रिप्ट वापसी टेक्स्ट बना सकता हूं। मेरी समस्या यह है कि मुझे स्क्रिप्ट में stdin पर पाठ पढ़ने का कोई तरीका नहीं मिल रहा है। रीड-होस्ट काम नहीं कर रहा है क्योंकि इसे एक इंटरैक्टिव खोल की आवश्यकता है।

मैं सेवा से stdout को एक tmp फ़ाइल में लिखने से बचाना चाहता हूं और स्क्रिप्ट में उस फ़ाइल को पढ़ना चाहता हूं क्योंकि सेवा बहुप्रचारित है (एक समय में एक से अधिक बाहरी कमांड लॉन्च कर सकती है) और टीएमपी फ़ाइल प्रबंधन (लॉकिंग, अद्वितीय फाइलनाम आदि) वांछित नहीं है।

क्या यह संभव है या इसके लिए मैं उदाहरण के लिए पर्ल का उपयोग करूँ? पावरहेल आकर्षक लग रहा है क्योंकि यह मेरी सभी जीत 2008 मशीनों पर पूर्वस्थापित है।

उत्तर

5

बस एक अनुमान - मुझे [Console]::In | gm -static पर एक नज़र डालेंगी।

+3

धन्यवाद। $ line = [कंसोल] :: इन। रीडलाइन() ने चाल की। – Stefan

संबंधित मुद्दे