2010-02-05 17 views
33

का उपयोग कर सभी एसवीएन फ़ाइलों को दोबारा हटाने के लिए कैसे करें PowerShell का उपयोग कर निर्देशिका से सभी सबवर्जन फ़ाइलों को हटाने के बारे में कोई कैसे जाएगा?PowerShell

+7

शायद यह लागू नहीं है, लेकिन उपरोक्त कलाकृतियों के बिना आपके संग्रह से अपने कोड की एक प्रति बनाना संभव है। जैसे TortoiseSVN का उपयोग करके, आप 'एसवीएन निर्यात' का उपयोग कर सकते हैं –

उत्तर

41

आप वास्तव में सिर्फ .svn निर्देशिका को नष्ट करना चाहते हैं, तो इस मदद कर सकता है:

gci c:\yourdirectory -include .svn -Recurse -Force | 
    Remove-Item -Recurse -Force 

संपादित करें: जोड़ा गया -Force पैरामीटर gci छिपी हुई निर्देशिकाओं को सूचीबद्ध करने और कोड को छोटा करने के लिए।

कीथ सही है कि आपको .svn एक्सटेंशन के साथ फ़ाइलों को हटाने से बचने की आवश्यकता है, आपको ? का उपयोग करके आइटम फ़िल्टर करना चाहिए।

+0

क्या कोई कारण है कि हम प्रतिलिपि करते समय svn फ़ाइलों को दोबारा बहिष्कृत नहीं कर सकते हैं? मैंने कॉपी-आइटम $ स्रोत -डिस्टिनेशन $ dest -Recurse- '.svn' को शामिल करने का प्रयास किया। लेकिन वह काम नहीं किया। इसलिए मैंने इसे पूरी तरह से कॉपी किया और फिर इस कमांड का उपयोग करके .svn फ़ाइलों को रिकर्सिवली से हटा दिया। – gprasant

+0

यह काम नहीं करता है। मुझे लगता है कि यह वही मामला है जैसे आप 'Get-ChildItem dir -recurse -exclude ..' का उपयोग करते हैं। '-बहिष्कृत करें '(और जैसा कि मुझे सही ढंग से याद है' शामिल करें ')' -recurse' के साथ अच्छी तरह से खेल नहीं आता है। – stej

+0

मेरे लिए पूरी तरह से काम करता है। धन्यवाद –

4

.svn निर्देशिकाओं के बिना एक साफ चेकआउट प्राप्त करने के लिए SVN Export का उपयोग करने के बारे में कैसे?

संपादित

आप इस सवाल का जवाब यहाँ को देखने के लिए चाहते हो सकता है:

Command line to delete matching files and directories recursively

+0

ऐसा नहीं कर सकता, यह कोड अन्य मशीन से है, यह एक गड़बड़ है। – epitka

10

मान लें कि आप किसी भी फाइल को भी विस्तार .svn हो सकता है को नष्ट नहीं करना चाहता:

Get-ChildItem $path -r -include .svn -Force | Where {$_.PSIsContainer} | 
    Remove-Item -r -force 

माइक्रोसॉफ्ट कि कीथ नीचे टिप्पणी में सुझाव का उत्तर दिया है एमएस कनेक्ट पर खोला! PowerShell वी 3 के रूप में आप Where {$_.PSIsContainer} करने के लिए अतिरिक्त (बहुत धीमी गति से) पाइप के साथ दूर करते हैं और बजाय -directory उपयोग कर सकते हैं:

gci $path -r -include .svn -force -directory | Remove-Item -r -force 

PowerShell v3 Windows Management Framework 3.0 पर विंडोज के लिए डाउनलोड किया जा सकता।

+0

हां, अच्छा पकड़ :) हालांकि, मुझे नहीं लगता कि इस एक्सटेंशन के साथ कुछ फाइल है। – stej

+0

मैंने कभी भी सबवर्सन (केवल साफ़केस और टीएफएस) का उपयोग नहीं किया है, इसलिए मुझे यकीन नहीं था। –

+2

बीटीडब्ल्यू मैं उस दिन की प्रतीक्षा करता हूं जब आपको 'कहां {$ _। PSIsContainer}' की आवश्यकता नहीं है और आपको बस इतना करना है कि वह gci है। -r -container केवल '। मेरे पास इस तरह से काम करने के लिए मेरा गेट-चाइल्ड इटिम है लेकिन मैं इसे रखने वाले अन्य लोगों पर भरोसा नहीं कर सकता। :-( –