विंडोज़/डॉस बैच फ़ाइलों में जब आप एक एप्लिकेशन के आउटपुट को दूसरे के लिए इनपुट के रूप में उपयोग करना चाहते हैं, तो आप पाइप प्रतीक का उपयोग करते हैं:

app1.exe | app2.exe

मैं कुछ और जटिल करने की कोशिश कर रहा हूं। मैं दूसरे प्रोग्राम के इनपुट के रूप में 2 प्रोग्राम के आउटपुट का उपयोग करना चाहता हूं। विशेष रूप से:

fc.exe [output of app1.exe] [output of app2.exe]

जाहिर है, मैं निम्नलिखित कर सकता हूं

app1.exe > tmp1.txt
app2.exe > tmp2.txt
fc.exe tmp1.txt tmp2.txt

लेकिन क्या ऐसा करने का कोई बेहतर तरीका है, अधिमानतः अस्थायी फ़ाइलें बनाए बिना?

ध्यान दें कि मैं विशेष रूप से विंडोज़/डॉस बाहरी एप्लिकेशन fc.exe (फाइल कॉम्पैरे) का उपयोग कर रहा हूं, इसलिए यदि उस टूल के लिए कोई विशेष चाल है, तो इसके लिए विशिष्ट उत्तरों का स्वागत है।

यह Linux के लिए कुछ इसी तरह का प्रश्न है: दो या अधिक STDOUT एक एसटीडीआईएन के लिए

1
RockPaperLz- Mask it or Casket 2 जिंदा 2021, 00:12

2 जवाब

सबसे बढ़िया उत्तर

fc कमांड कमांड लाइन तर्कों की अपेक्षा करता है जो निर्दिष्ट करते हैं तुलना करने के लिए इनपुट डेटा वाली फ़ाइलें।

लेकिन fc कंसोल इनपुट को नहीं पढ़ता (STDIN, हैंड 0; देखें Redirection), जो उस कमांड लाइन तर्कों से पूरी तरह से अलग है, इसलिए आप इनपुट रीडायरेक्शन (<) या पाइपिंग का उपयोग नहीं कर सकते (|, fc के साथ दाईं ओर) इनपुट डेटा प्रदान करने के लिए।

तो आपको अस्थायी फ़ाइलों का उपयोग करना होगा, जैसा कि आपने पहले ही किया था।

1
aschipfl 19 फरवरी 2021, 19:23

आपके पास 10 फ़ाइल स्ट्रीम हैं जिन्हें आप रीडायरेक्ट कर सकते हैं। हालाँकि आप केवल प्रोग्राम को पाइप कर सकते हैं (जो इसे करने के लिए एक अस्थायी फ़ाइल बनाता है)।

0
user14797724 2 जिंदा 2021, 00:20