विंडोज: कुछ भी नहीं करने के लिए stdout और stderror को पुनर्निर्देशित करें


33

मेरे पास एक कमांड है जो मैं चला रहा हूं, एक टन आउटपुट का उत्पादन करता हूं, मैं एक फाइल को लिखे बिना आउटपुट को चुप करना चाहता हूं। मैंने फ़ाइल में सभी आउटपुट भेजने के लिए निम्नलिखित का उपयोग किया है, लेकिन फिर से मुझे कोई फ़ाइल आउटपुट नहीं चाहिए:

command > out.txt 2>&1

मैंने command > /dev/nullपहले अपने CentOS बॉक्स पर उपयोग किया है , लेकिन मुझे विंडोज़ के लिए एक समान चीज़ नहीं मिल रही है।


मुझे आशा है कि आपने command > /dev/nullअपने CentOS पर उपयोग किया है ।
कर्ट फ़िफ़ले

@ पिपिटास ने जो कुछ भी मैंने किया वह काम किया: डी
एलेक गॉर्ज

यदि आप वास्तव command > /bin/nullमें CentOS पर उपयोग करते हैं, तो आपने /bin/nullअपने सिस्टम पर एक सामान्य फ़ाइल फ़ाइल बनाई है। आप कह सकते हैं 'यह काम किया!' , अगर तुम चाहो। इस फ़ाइल में अब आपका stdout और stderr आउटपुट मौजूद है command। आमतौर पर, /bin/केवल निष्पादन योग्य फाइलें होती हैं। और आमतौर पर, केवल रूट उपयोगकर्ता को वहां फाइलें बनाने की अनुमति दी जाती है। इसलिए यदि वह फ़ाइल वहां है, तो आपने अपना कमांड रूट यूजर के रूप में चलाया ... /bin/nullआमतौर पर मौजूद नहीं है - और /dev/null(जिसका मैंने उल्लेख किया है) आमतौर पर 'ब्लैक पूरी' के रूप में उपयोग किया जाता है, जहां अवांछित आउटपुट गायब हो जाना चाहिए ...
कर्ट पफीफले

अच्छी बात है, मैंने ऐसा नहीं सोचा था। हालाँकि, मुझे पूरा यकीन है कि यह सिर्फ मेरी दोषपूर्ण स्मृति है क्योंकि मैं उस समय विंडोज पर था।
एलेक गॉर्ज

जवाबों:


47

आप चाहते हैं command > nul 2>&1


धन्यवाद! यह काम करता है। हालांकि (सर्वरफॉल्ट आवश्यकता) उत्तर को स्वीकार करने के लिए मुझे 12 मिनट इंतजार करना होगा!
एलेक जॉर्ज

7
यह केवल रीडायरेक्ट करता है। आपको स्टाडर को मारने > nul 2>&1या 2> nulमारने की भी आवश्यकता है ।
ग्रैविटी

हां, मुझे पता है, लेकिन इस सवाल पर जाने वाले अन्य लोगों के लिए इसका उल्लेख करने के लिए धन्यवाद!
एलेक गॉर्ज

केवल जोड़ने के लिए, मुझे उपयोग करते समय अनुमति अस्वीकृत त्रुटि मिल रही थी: sudo hostname -f 2> nul जबकि निम्नलिखित कमांड अच्छी तरह से काम किया: sudo hostname -f 2> / dev / null उन लोगों के लिए जो nul का उपयोग करते समय अनुमति जारी करने में भाग लेते हैं
रणबीर

1
@AminM nulएक शून्य आउटपुट (यानी आउटपुट को त्यागने) के लिए विंडोज का विशेष कीवर्ड है। * Nix- आधारित सिस्टम (जैसे कि रणवीर का जिक्र है) पर वे विशेष फाइल का उपयोग करते हैं /dev/null>इसका मतलब है "रीडायरेक्ट" (और 2>साधन अनुप्रेषित बफ़र 2 - जो त्रुटि उत्पादन होता है)
डॉक्टर जे

3

तुम्हें चाहिए command > null 2>&1

nulकेवल कमांड प्रॉम्प्ट nullमें काम करता है जबकि पावरशेल में काम करता है

Null का उपयोग संगतता के लिए और cmd.exe में किया जा सकता है लेकिन null नामक एक फ़ाइल बनाता है।


3
कमांड प्रॉम्प्ट cmd.exe है। '> null' एक फाइल बनाता है जिसे 'null' कहा जाता है, जिसे आप cmd.exe से और PowerShell से जो भी निर्देश दे रहे हैं।
श्री स्मिथे

मुझे पता नहीं था। विधिवत मेरे उत्तर का संपादन किया।
एयरकम्बैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.