कमांड लाइन का उपयोग करके एक निर्देशिका और उसकी फ़ाइलों को हटाएं, लेकिन मौजूद न होने पर त्रुटि न करें


85

मुझे निर्देशिका और उसकी सभी युक्त फ़ाइलों को हटाने के लिए एक विंडोज कमांड की आवश्यकता है लेकिन यदि निर्देशिका मौजूद नहीं है तो मैं कोई त्रुटि नहीं देखना चाहता।

जवाबों:


83

delकमांड के आउटपुट को nul में रीडायरेक्ट करें । ध्यान दें 2, यह इंगित करने के लिए कि त्रुटि आउटपुट पुनर्निर्देशित किया जाना चाहिए। इस प्रश्न को भी देखें , और विशेष रूप से टेक डॉक्टर कमांड पुनर्निर्देशन ऑपरेटरों का उपयोग करना

del {whateveroptions} 2>nul

या आप कॉल करने से पहले फ़ाइल अस्तित्व की जांच कर सकते हैं del:

if exist c:\folder\file del c:\folder\file

ध्यान दें कि आप जांच करने के लिए if exist c:\folder\(अनुगामी के साथ \) का उपयोग कर सकते हैं कि क्या c:\folderवास्तव में एक फ़ोल्डर है और फाइल नहीं है।


कोशिश की, मुझे अभी भी "सिस्टम निर्दिष्ट पथ नहीं मिल रहा है"
jaywayco

3
बल पुनरावर्ती विलोपन, त्रुटियों को अनदेखा करें:rmdir /s /q some\where\myFolder 2>nul
crusy

@ क्राइसी की बहुत सराहना की, लेकिन यह वही जवाब ( rmdir= rd) है जो dbenham पहले ही ठीक 6 साल पहले दिया था
GolezTrol

60

या तो पुनर्निर्देशित stderr nul करने के लिए

rd /q /s "c:\yourFolder" 2>nul

या सत्यापित करें कि फ़ोल्डर हटाने से पहले मौजूद है। नोट करें कि अनुगामी \IF स्थिति में महत्वपूर्ण है।

if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"

14
@GolezTrol - न तो आपने ओपी द्वारा अनुरोधित फ़ोल्डर को हटा दिया। आप दोनों ने किसी फ़ाइल को हटाने पर ध्यान केंद्रित किया।
डेनबहम

22

विंडोज 10 पर मेरे लिए निम्न कार्य बहुत अच्छा है:

if exist <path> rmdir <path> /q /s

q"बिना पूछे डिलीट करें" और s"सभी सबफ़ोल्डर्स और फाइल्स को डिलीट करने" के लिए खड़ा है।

और आप कमांड को भी संक्षिप्त कर सकते हैं:

(if exist <path> rmdir <path> /q /s) && <some other command that executes after deleting>

3

आप stderr को nul में रीडायरेक्ट कर सकते हैं

del filethatdoesntexist.txt 2>nul

1
क्या आपने यह कोशिश की? यह काम नहीं करता है। यदि यह मौजूद नहीं है, तो मैं अभी भी त्रुटि देखता हूं
dgo

0

ऊपर संकेत में Y या N के साथ आता है। इसलिए, मैंने इसके बजाय निम्नलिखित का उपयोग किया और यह पूरी तरह से काम करता है।

if exist cddd rmdir cddd

आशा है कि यह किसी की मदद करता है।

चीयर्स।


प्रॉम्प्ट से बचने के लिए आपको rmdir कमांड में / Q जोड़ना होगा । यदि आपको सभी फ़ाइलों और उपनिर्देशिकाओं को हटाने की आवश्यकता है, तो आपको भी / एस की आवश्यकता है । आपको प्रॉम्प्ट संभवतः नहीं दिखाई दिया क्योंकि निर्देशिका नहीं थी।
बेमेइफ़े
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.