أداة سطر الأوامر لحذف مجلد مع الاسم المحدد بشكل متكرر في ويندوز؟

StackOverflow https://stackoverflow.com/questions/521382

سؤال

وأريد حذف كل "_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.

هل كانت مفيدة؟

المحلول

وعلى غرار لBlackTigerX "ل"، كنت ذاهبا لاقتراح

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

نصائح أخرى

والوقت لتعلم بعض بوويرشيل ؛ س)

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

والجزء الأول يجد كل مجلد _svn متكرر. يستخدم القوة لايجاد المجلدات المخفية. يستخدم الجزء الثاني لحذف هذه المجلدات ومحتوياتها. إزالة commandlet يأتي مع المعلمة مفيدة "whatif" الذي يسمح لمعاينة ما سيتم القيام به.

وبوويرشيل لأنظمة التشغيل Windows XP و Windows Vista. كان موجودا على ويندوز 7 و Windows Server 2008 R2 بشكل افتراضي.

وانها منتج MS، أنها حرة، والصخور!

لإدراج / الاحتجاج من داخل استخدام ملف دفعي (ويقول لإزالة التصحيح والافراج عن مجلد):

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

وهناك حاجة % المزدوج ضمن ملف دفعي للعمل في حرف الهروب. آخر فإنه تقارير خطأ في بناء الجملة.

وشكرا.

في ويندوز؟ إذا كنت تستخدم تورتويز إس في إن يمكنك استخدام الأمر تصدير لتصدير نسخة من المشروع دون .svn / _svn المجلدات.

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))

وأعتقد يمكنك أن تجرب هذا البرنامج النصي بيثون، الذي سيعمل تحت أي OS إذا كنت قد حصلت بيثون تثبيت.

وثمة خيار آخر من المنتدى SVN : استخدام XCOPY مع ملف الذي يحتوي على قائمة من الملفات / الدلائل إلى أن استبعاد (.svn أو _svn في هذه الحالة)

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

وهنا ... مع FreeCommander أو totalcommander و

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

وsocendani

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top