2010-12-14 17 views
5

मैं निर्माण के साथ बैच फ़ाइलों के बिना एक बैच फ़ाइल से मौजूद है:निर्धारण अगर एक फ्लैश ड्राइव त्रुटि संदेश

if exist F:\ copy /y Application.exe F:\ 

एक संकलन के अंत में, एक यूएसबी कुंजी के लिए निष्पादन योग्य कॉपी करने के लिए अगर यह प्लग किया गया है इसमें। यूएसबी कुंजी के साथ ठीक काम किया है, लेकिन जब मेरे पास एक यूएसबी मल्टी कार्ड रीडर प्लग इन था (यह ड्राइव ई की तरह दिखता है: .. एच :, और यदि कोई एसडी कार्ड प्लग इन नहीं है, जब मैं उपरोक्त बैच लाइन निष्पादित करता हूं, मुझे "विंडोज़ - नो डिस्क" स्नैग संदेश मिलता है।

यदि कोई कार्ड प्लग इन है, तो मुझे संदेश नहीं मिलता है, (और फ़ाइल कॉपी की गई है), यदि कार्ड रीडर प्लग इन नहीं है, तो मैं संदेश प्राप्त न करें और फ़ाइल की प्रतिलिपि नहीं बनाई गई है (जाहिर है), लेकिन इनमें से किसी भी मामले में बैच फ़ाइल चलना बंद नहीं करती है। यह केवल तभी होता है जब कार्ड रीडर प्लग इन हो लेकिन ड्राइव में कोई कार्ड न हो।

क्या मैं बैच फ़ाइल से इन यूएसबी ड्राइव में "डिस्क" के लिए चुपचाप जांच सकता हूं?

उत्तर

7

DIR साथ IF EXIST बदलें और && या || आप क्या चाहते हो पर निर्भर करता है का उपयोग करें।

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

  • IF EXIST...

    DIR F:\ && copy /y Application.exe F:\ 
    
  • बदलने के लिए IF NOT EXIST

    DIR F:\ || copy /y Application.exe F:\ 
    

बदलने के लिए आप STDOUT को दबाने के लिए चाहते हैं और DIR यदि नकल करने की STDERR वास्तव में अस्तित्व में ...

  • IF EXIST...

    DIR F:\ 1>NUL 2>&1 && copy /y Application.exe F:\ 
    
  • प्रतिस्थापित करने के लिए बदलने के लिए IF NOT EXIST

    DIR F:\ 1>NUL 2>&1 || copy /y Application.exe F:\ 
    
+0

धन्यवाद @ डेविड। एक इलाज किया।निर्माण का उपयोग करना 'यदि मौजूद नहीं है F: \ echo hello' एक संवाद प्रदर्शित करता है' --------------------------- विंडोज़ - कोई डिस्क --------------------------- अपवाद प्रसंस्करण संदेश c0000013 पैरामीटर 75b6bf7c 4 75b6bf7c 75b6bf7c ------------ --------------- रद्द करें पुन: प्रयास करें --------------------------- 'अगर एफ: \ एक यूएसबी कार्ड रीडर को संदर्भित करता है जिसमें कोई कार्ड प्लग इन नहीं होता है, जबकि 'डीआईआर एफ: \ 1> एनयूएल 2> और 1 || हैलो इको 'सिर्फ echos' हैलो 'की तरह यह चाहिए। – rossmcm

0

मुझे लगता है कि ऐसा लगता है कि आप /F पैरामीटर के साथ कमांड.com चला सकते हैं ताकि यह हमेशा उन त्रुटि संदेशों को स्वचालित रूप से विफल कर सके ताकि यह उन्हें तोड़ न सके। हालांकि इसके बारे में निश्चित नहीं है और यह बिल्कुल निश्चित नहीं है कि यह अभी भी आधुनिक विंडोज पर काम करता है।

0

DIR ठीक ही जब है ड्राइव खाली नहीं है।

मुझे कोई फ़ाइलें ड्राइव यह भले ही ड्राइव ठीक से प्लग किया गया है काम नहीं करेगा पर मौजूद

उपयोग बजाय CD:। यदि आप F:\ के बाद NUL जोड़ने

CD F:\ && copy /y Application.exe F:\ 
0

if exist काम करेंगे। इस तरह:

if exist F:\NUL copy /y Application.exe F:\ 
संबंधित मुद्दे