أداة سطر الأوامر لحذف مجلد مع الاسم المحدد بشكل متكرر في ويندوز؟
-
22-08-2019 - |
سؤال
وأريد حذف كل "_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"
وهناك حاجة %
المزدوج ضمن ملف دفعي للعمل في حرف الهروب. آخر فإنه تقارير خطأ في بناء الجملة.
وشكرا.
for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"
HTTP: //ebersys.blogspot. كوم / 2008/07 / متكرر-حذف-إس-المجلدات سهلة way.html
في ويندوز؟ إذا كنت تستخدم تورتويز إس في إن يمكنك استخدام الأمر تصدير لتصدير نسخة من المشروع دون .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