2009-02-06 10 views
62

मैं हर हर फ़ोल्डर और सबफ़ोल्डर में "_svn" को हटाना चाहते ...विंडोज़ में एक निर्दिष्ट नाम के साथ फ़ोल्डर को हटाने के लिए कमांड लाइन उपकरण?

उदाहरण के लिए

 
c:\ 
    proyect1 
    _svn 
    images 
    _svn 
    banner 
     _svn 
    buttons 
     _svn 

तो मैं जैसे

rm-recurse c:\proyect1 _svn 

कुछ चलाने और मैं मिलना चाहिए:

 
c:\ 
    proyect1 
    images 
    banner 
    buttons 

आदर्श बात एक छोटी सी स्टैंड-अलोन EXE या कुछ पसंद होगी ई वह

- धन्यवाद अनुदान, जैसे ही मैं सवाल मैं SVN निर्यात आदेश के बारे में SVN प्रलेखन देखा तैनात है, लेकिन मैं भी _vti_ * फ़ोल्डरों दृश्य स्टूडियो बनाता है सामान को हटाना चाहते हैं, तो मैं भी for का पता लगाने जाएगा उपाय।

+0

कृपया एक सवाल के रूप में इस reword; क्या आप ऐसा करने के लिए एक उपकरण विकसित करने में मदद मांग रहे हैं, या आप जानना चाहते हैं कि ऐसे कोई उपकरण उपलब्ध हैं या नहीं? – Rob

+0

बस एक .bat फ़ाइल बनाएं। :-) – MarlonRibunal

+14

.bat फ़ाइलें सभी विंडोज़ समस्याओं को हल नहीं करती हैं। कभी-कभी आपको उन्हें कमांड और सामान से भरना होगा। – Grant

उत्तर

116

BlackTigerX के "के लिए" की तरह, मैं या TotalCommander

http://www.broobles.com/blog/posts/36

socendani

+0

"यदि मौजूद है" आवश्यक है? – BlackTigerX

+3

हां, क्योंकि इस "के लिए" की प्रकृति यह है कि यह प्रत्येक निर्देशिका प्रविष्टि में "_svn" जोड़ती है क्योंकि यह निर्देशिका वृक्ष को दोहराती है। – JMD

+0

आपका समाधान मौजूदा निर्देशिकाओं की एक स्पष्ट सूची लौटकर बाईपास करता है। – JMD

14
for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d" 

http://ebersys.blogspot.com/2008/07/recursively-delete-svn-folders-easy-way.html

+0

मुझे एक त्रुटि मिलती है: dir फ़ाइल नहीं मिल सका, मैंने cmd.exe/c dir के साथ प्रयास किया ..., लेकिन मुझे एक ही त्रुटि मिलती है, हालांकि, जेएमडी का समाधान चाल है ... – opensas

+0

ओह, मैंने पृष्ठ की जांच की आप से जुड़े हुए हैं, ऐसा लगता है कि वहां कुछ '' (सिंगल कोट्स) गायब हैं ... फिक्सिंग ने यह भी किया है ... – opensas

10

Windows में? यदि आप tortoiseSVN का उपयोग कर रहे हैं तो आप .svn/_svn फ़ोल्डर्स के बिना प्रोजेक्ट की एक प्रति निर्यात करने के लिए निर्यात कमांड का उपयोग कर सकते हैं।

+1

आप कमांड लाइन टूल के साथ svn निर्यात भी कर सकते हैं चाहे आप विंडोज पर हों या नहीं। – Parappa

+0

मुझे लगता है कि लोगों को .svn/_svn फ़ोल्डरों को दोबारा हटाने की आवश्यकता समाप्त हो गई है क्योंकि उन्होंने स्वच्छ निर्यात की तुलना में अपने संशोधित संस्करण की फ़ोल्डर तुलना करने के लिए अपनी स्थानीय कार्य प्रतिलिपि को सीधे एक नए स्थान पर कॉपी किया है, यानी संशोधित स्थानीय कामकाजी प्रति के साथ कुछ ख़राब हो जाता है। (कम से कम यही कारण है कि मुझे इसकी आवश्यकता है। यह संभव है कि 'svn export' का उपयोग करने के लिए यह निश्चित रूप से आसान/तेज़ है।) – JMD

2

सुझाव देने के लिए जा रहा था ... freeCommander साथ मुझे लगता है कि आप सी इस पायथन स्क्रिप्ट को आज़माएं, जो कि आपके पास पाइथन स्थापित होने पर किसी भी ओएस के तहत काम करेगा।

+0

लंबे समय तक कुल कमांडर (पूर्व में विंडोज कमांडर!) उपयोगकर्ता, मैं इस जवाब को नकारात्मक रहने नहीं दे सकता। यह किसी ऐसे व्यक्ति के लिए एक अच्छा, सरल समाधान है जिसने पहले ही टीसी स्थापित किया है। मुझे इस निफ्टी चाल को जानकर खुशी हुई। धन्यवाद! –

+0

यहां सबसे सीधे आगे समाधान! – zatziky

4
import os 
import shutil 

curdir = os.path.abspath(os.path.dirname(__file__)) 

def removedir(dirname, name = ".svn"): 
    if os.path.isdir(dirname): 
     for file in os.listdir(dirname): 
      if os.path.isdir(os.path.join(dirname, file)) and file == name: 
       thedir = os.path.join(dirname, name) 
       shutil.rmtree(thedir) 
       print ".", 
      else: 
       removedir(os.path.join(dirname, file)) 

यहाँ

for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"

21

समय जानने के लिए कुछ PowerShell; ओ)

Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse 

पहले भाग रिकर्सिवली प्रत्येक _svn फ़ोल्डर पाता है। बल का उपयोग छुपा फ़ोल्डर खोजने के लिए किया जाता है। दूसरे भाग का उपयोग इन फ़ोल्डर्स और उनकी सामग्री को हटाने के लिए किया जाता है। कमांडलेट निकालें एक आसान "व्हाटिफ़" पैरामीटर के साथ आता है जो पूर्वावलोकन करने की अनुमति देता है कि क्या किया जाएगा।

पावरशेल विंडोज एक्सपी और विंडोज विस्टा के लिए उपलब्ध है। यह डिफ़ॉल्ट रूप से विंडोज 7 और विंडोज सर्वर 2008 आर 2 पर मौजूद है।

यह एक एमएस उत्पाद, यह मुफ़्त है, और यह चट्टानों!

+0

यह समाधान विंडोज सर्वर 2008 आर 2 पर पूरी तरह से काम करता है। धन्यवाद –

16
एक बैच फ़ाइल उपयोग के भीतर से

शामिल किए जाने के/मंगलाचरण के लिए (डीबग दूर करने के लिए कहते हैं और फ़ोल्डर रिलीज):

for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d" 

डबल % भागने वर्ण के रूप में काम करने के लिए एक बैच फ़ाइल के भीतर आवश्यक हैं। अन्यथा यह वाक्यविन्यास की त्रुटि की रिपोर्ट करता है।

धन्यवाद।

3

SVN Forum से एक अन्य विकल्प: (इस मामले में .svn या _svn) एक फ़ाइल है कि फ़ाइलें/निर्देशिका की सूची होती है बाहर रखा जाना साथ XCopy का उपयोग

XCopy C:\VersionedFolder C:\UnVersionedFolder /EXCLUDE:C:\No.SVN.txt /E /C /I /F /R /Y 
+0

या 'ROBOCOPY', जिसके लिए एक सूची फ़ाइल की आवश्यकता नहीं है। –

संबंधित मुद्दे