क्या विंडोज पर एक / देव / अशक्त है?


जवाबों:


487

मुझे लगता है कि आप चाहते हैं NUL, कम से कम एक कमांड प्रॉम्प्ट या बैच फ़ाइलों के भीतर।

उदाहरण के लिए:

type c:\autoexec.bat > NUL

एक फ़ाइल नहीं बनाता है।

(मेरा मानना ​​है कि यदि आप किसी प्रोग्राम को प्रोग्राम बनाने की कोशिश करते हैं , तो भी यही सच है, लेकिन मैंने इसे आज़माया नहीं है।)

PowerShell में, आप चाहते हैं $null:

echo 1 > $null

20
@capthive: /dev/null.txt और /dev/null/foo.txt के बीच अंतर है।
जॉन स्कीट

2
मैंने अभी इसे फिर से देखा, और मैं अपने मूल कथन को वापस लेता हूं। मैं कोड में लिख रहा था, और त्रुटि निगल रही थी। मैं इसे हटा रहा हूं इसलिए कोई भी गलती से इसे सच नहीं मानता।
जिम हंज़िकर

3
: लोगों Windows के तहत यूनिक्स "विशेष" फाइलों की तलाश के लिए यहाँ हैं /dev/randomऔर /dev/zeroडिवाइस ड्राइवर Win32 के लिए।
ulidtko

9
@CoDEmanX: यह मेरा अनुभव नहीं है। कंसोल पर लिखना - या यहां तक ​​कि एक फ़ाइल - समय का एक महत्वपूर्ण हिस्सा ले सकता है। मैंने अभी इसे 10000000 बार स्टडआउट करने के लिए "हेलो देयर" लिखने वाले प्रोग्राम के साथ परीक्षण किया है। एक फ़ाइल (एक एसएसडी पर) के लिए पुनर्निर्देशन में 18 सेकंड लगे। NUL को पुनर्निर्देशित करने में 4 सेकंड का समय लगा। कुछ समय के बाद धैर्य की कमी के माध्यम से मुझे बिल्कुल भी पुनर्निर्देशित नहीं किया गया ...
जॉन स्कीट

2
मैं Win95 समय में वापस सीखा है कि आप, विशेष उपकरण नाम के बाद एक कॉलन लिखना चाहिए ताकि NUL:(और CON:, PRN:, ...), यह ज्यादातर शैली और शो स्पष्ट रूप से की बात यह है कि NUL:एक विशेष वस्तु और नहीं एक फ़ाइल कहा जाता है NUL। इसके अलावा, एक विशेष एपीआई के साथ एक फ़ाइल बनाने के लिए संभव है जिसे कहा जाता है NUL(उत्तरों में से एक देखें)। मेरा सपना है कि शायद एक दिन, अगर हर कोई सम्मेलन द्वारा बृहदान्त्र का उपयोग करता है, तो हम खतरनाक विशेष उपकरण के नामों को
चित्रित

65

जीसीसी मेलिंग सूची के इस संदेश के अनुसार , आप फ़ाइल का उपयोग "nul" के बजाय / dev / null कर सकते हैं:

#include <stdio.h>

int main ()
{
    FILE* outfile = fopen ("/dev/null", "w");
    if (outfile == NULL)
    {
        fputs ("could not open '/dev/null'", stderr);
    }
    outfile = fopen ("nul", "w");
    if (outfile == NULL)
    {
        fputs ("could not open 'nul'", stderr);
    }

    return 0;
}

( इस कोड के लिए डैनी को श्रेय ; उनके संदेश से कॉपी-पेस्ट।)

आप पुनर्निर्देशन के माध्यम से इस विशेष "nul" फ़ाइल का भी उपयोग कर सकते हैं।


1
आह, तो यह बताता है कि क्यों, यदि आप C:\devविंडोज में एक निर्देशिका बनाते हैं , और आप बहुत सारे GNU उपयोगिताओं का उपयोग करते हैं, तो आप अंततः उस निर्देशिका में एक रहस्यमय फ़ाइल प्राप्त करेंगे जिसे null कहा जाता है।
क्लिटोस काइराकौ

50

NULविंडोज में वास्तव में किसी भी फ़ोल्डर में एक आभासी पथ लगता है। ठीक वैसे ही .., जैसे .किसी भी फाइलसिस्टम में।

NUL के साथ काम करने वाले किसी भी फोल्डर का उपयोग करें।

उदाहरण,

echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul

/dev/nullलिनक्स पर समान प्रभाव है ।

यह विंडोज 7, 64 बिट पर परीक्षण किया गया था।


7
अच्छा है, विंडोज 7 64 बिट पर "nul" नाम की फाइल बनाना संभव नहीं है :)
डेविड फेरेंस्की रोगोजान

7
@DawidFerenczy यह संभव है, हालांकि क्लासिक तरीके से नहीं। उदाहरण के लिए md \\.\c:\nul quora.com/... , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/...
phuclv

1
बैश में विंडोज 10 पर, पहला एक फाइल बनाता हैnul
DrMM

win10 में जावा का उपयोग करके IOException को फेंकता है। बस इसे पकड़ने की कोशिश पर लपेटने की जरूरत है। उम्मीद थी कि कोई अपवाद / त्रुटियों की तरह / देव / अशक्त नहीं होगा
एमडीयूएच

34

जॉन स्कीट सही है। यहाँ विंडोज एंबेडेड प्रलेखन में नुल डिवाइस ड्राइवर पेज है (मुझे नहीं पता कि यह कहीं और क्यों नहीं है ...)।

यहाँ एक और है:


69
बेशक जॉन स्कीट सही है। एक स्पष्ट और सार्वभौमिक सत्य
बताने के

1
यहां के 2 लिंक अब टूट गए हैं। :(
माइकल फोकरिसिस

9

NULप्रोग्रामेटिक रूप से भी काम करता है। उदाहरण के लिए:

freopen("NUL", "w", stderr);

फ़ाइल बनाए बिना अपेक्षित रूप से काम करता है। (MSVC ++ 12.0)


1
केवल इतनी बार प्रश्न का उत्तर देने की आवश्यकता है NUL, और यह उस बिंदु से 5 साल पहले था।
miken32

6
मुझे लगता है कि यह जवाब चर्चा में एक वैध योगदान जोड़ता है।
जीरो

3

यदि आपको Microsoft विंडोज /dev/nullमें लिनक्स में सिम्कलिन के बराबर प्रदर्शन करने की आवश्यकता है जो आप खोलेंगे और प्रशासक का cmdप्रकार:

फ़ाइलों के लिए:

mklink c:\path\to\file.ext NUL:

या, निर्देशिका के लिए:

mklink /D c:\path\to\dir NUL:

यह फ़ाइल / direcotry को हमेशा 0 बाइट पर रखेगा, और फिर भी हर लिखने के प्रयास में सफलता लौटाएगा।


-1

आपको इसके लिए Windows PowerShell में स्टार्ट और $ NUL का उपयोग करना होगा :

इस आदेश में टाइप करें मान लें mySumकि आपके आवेदन का नाम है और 5 10कमांड लाइन तर्क हैं जो आप भेज रहे हैं।

start .\mySum  5 10 > $NUL 2>&1

startआदेश एक अलग प्रक्रिया है, के लिए एक समान प्रभाव शुरू कर देंगे &/Bविकल्प रोकता है एक नया टर्मिनल विंडो खोलने अगर कार्यक्रम आप चल रहे हैं एक सांत्वना अनुप्रयोग है से शुरू करते हैं। और NULविंडोज 'के बराबर है /dev/null2>&1अंत में stdout है, जो सभी के लिए जाना जाएगा करने के लिए stderr रीडायरेक्ट करेगा NUL


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