আমি সমস্ত বিন এবং আপত্তি ফোল্ডারগুলি মুছে ফেলতে চাই সমস্ত প্রকল্পকে সবকিছু পুনর্নির্মাণে বাধ্য করতে


262

আমি একাধিক প্রকল্পের সাথে কাজ করি এবং আমি 'বিন' বা 'আপত্তি' নামটি দিয়ে সমস্ত ফোল্ডারগুলি পুনরাবৃত্তভাবে মুছতে চাই আমি নিশ্চিত যে সমস্ত প্রকল্পগুলি পুনর্নির্মাণ করবে (কখনও কখনও এটি ভিজ্যুয়াল স্টুডিওকে পূর্ববর্তী সমস্ত কিছু ভুলে যেতে বাধ্য করার একমাত্র উপায় sometimes বিল্ড)।

.NET প্রোগ্রাম না লেখার (উদাহরণস্বরূপ .bat ফাইল সহ) এটি সম্পাদন করার কোন দ্রুত উপায় আছে?


25
বিল্ড-> ক্লিন সলিউশনটি বাস্তবে এটি করা ভাল হবে be
ডাস্টিন অ্যান্ড্রুজ

উত্তর:


411

এটি আপনি যে শেলটি ব্যবহার করতে পছন্দ করেন তার উপর নির্ভর করে।

আপনি যদি উইন্ডোজে সেন্টিমিডি শেল ব্যবহার করেন তবে নিম্নলিখিতগুলির কাজ করা উচিত:

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"

যদি আপনি বাশ বা জেডএস টাইপের শেল ব্যবহার করে থাকেন (যেমন উইন্ডোতে গিট ব্যাশ বা বাবুন বা বেশিরভাগ লিনাক্স / ওএস এক্স শেলস) তবে আপনি যা চান তা করার এটি একটি খুব সুন্দর, আরও সংক্ষিপ্ত উপায়:

find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf

এবং এটি একটি OR এর সাথে এক লাইনে হ্রাস করা যেতে পারে:

find . -iname "bin" -o -iname "obj" | xargs rm -rf

নোট করুন যে আপনার ফাইলনামের ডিরেক্টরিতে যদি ফাঁকা জায়গা বা কোট থাকে, সন্ধান করুন সেই প্রবেশাগুলি যেমন রয়েছে তেমন পাঠানো হবে, যা xargs একাধিক এন্ট্রিগুলিতে বিভক্ত হতে পারে। যদি আপনার শেল তাদের সমর্থন করে -print0এবং -0এই স্বল্প-আগমনের আশেপাশে কাজ করে, তবে উপরের উদাহরণগুলি হয়ে উঠবে:

find . -iname "bin" -print0 | xargs -0 rm -rf
find . -iname "obj" -print0 | xargs -0 rm -rf

এবং:

find . -iname "bin" -o -iname "obj" -print0 | xargs -0 rm -rf

আপনি যদি পাওয়ারশেল ব্যবহার করেন তবে আপনি এটি ব্যবহার করতে পারেন:

Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

নীচে রবার্ট এইচ এর উত্তরে দেখা গেছে - আপনি যদি কিছু আপ-ভোটিং বেছে নেন তবে কেবল আমার চেয়ে বরং পাওয়ারশেল উত্তরের জন্য আপনি তাকে ক্রেডিট দিয়েছেন তা নিশ্চিত করুন :)

এটি পরীক্ষা করার জন্য প্রথমে আপনি যে কোনও কমান্ড নিরাপদ চয়ন করেছেন তা চালানো অবশ্যই বুদ্ধিমানের কাজ হবে!


5
আপনার উত্তরের জন্য ধন্যবাদ। আমি একটি ত্রুটি পেয়েছি: %% G এই সময়ে অপ্রত্যাশিত ছিল।
মাইকেলডি

হুম এটি অদ্ভুত - এটি আমার মেশিনে ভাল কাজ করে (ভিস্তা 64 বিট ব্যবসা) - আমি এটি এক্সপি মেশিনেও চেষ্টা করব।
স্টিভ উইলকক

48
"%% G এই সময়ে অপ্রত্যাশিত ছিল" - আপনি যখন ব্যাচ ফাইলের অভ্যন্তরের পরিবর্তে কমান্ড লাইন থেকে এটি চালাবেন তখন এটি ঘটে। এক্ষেত্রে একক '%' ব্যবহার করুন।
ডিজাইনপটনার

4
+1 আপনি কি আমার জন্য কোডটি ব্যাখ্যা করতে আপত্তি করবেন? অনুগ্রহ.
ফাইবার অপটিক্স 6:54

2
পছন্দ করুন পরিষ্কার প্রকল্পে আর উল্লেখ করা হয়নি এমন ঘরগুলি সরিয়ে ফেলবে না (বাম ওভার)।
পাইটর জাজমিড

255

আমি এই থ্রেডটি পেয়েছি এবং বিঙ্গো পেয়েছি। আরেকটু অনুসন্ধানে এই পাওয়ার শেল স্ক্রিপ্টটি চালু করা হয়েছে:

Get-ChildItem .\ -include bin,obj -Recurse | ForEach-Object ($_) { Remove-Item $_.FullName -Force -Recurse }

আমি ভেবেছিলাম আমি ভাগ করব, বিবেচনা করে যে আমি এখানে যখন দেখছিলাম তখন উত্তর খুঁজে পাই না।


@ নিগেল, এই সমাধানটি কি চূড়ান্তভাবে অভিনয় নয়? 10x গতিতে চলতে পারে এমন একটি কাস্টম সি স্ক্রিপ্ট লিখবেন না কেন?
পেসারিয়ার

37
আপনার পূর্বাঞ্চের দরকার নেই - আপনার কেবলমাত্র জিসিআইকে সরান-আইটেমের (যেমন, gci -include bin,obj -recurse | remove-item -force -recurse) পাইপ করতে সক্ষম হওয়া উচিত
ক্রিস জে

1
আমার সন্ধানপথ থেকে ফোল্ডারগুলিও বাদ দেওয়া দরকার, এবং -WhatIfপতাকাটি প্রথমে পরীক্ষা করতে পছন্দ করি , তাই আমি এটি দিয়ে শেষ করেছি: $foldersToRemove='bin','obj';[string[]]$foldersToIgnore='ThirdParty';Get-ChildItem .\ -Include $foldersToRemove -Recurse|Where-Object{$_.FullName -inotmatch "\\$($foldersToIgnore -join '|')\\"}|Remove-Item -Force -Recurse -WhatIf(যদিও এখানে এক লাইন হিসাবে কিছুটা অগোছালো :))
জনি স্কোভডাল

@ ক্রিসজে আপনার সমাধানের সাথে একটি নতুন উত্তর যুক্ত করার বিষয়ে বিবেচনা করুন।
গ্রানাডা কোডার

66

এটি আমার পক্ষে কাজ করেছে:

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

এই উত্তরের উপর ভিত্তি করে সুপারইউজার ডটকম


1
দুর্দান্ত এবং প্রসারিত করা সহজ। আমি / ডি / আর এর জন্য ব্যবহার করি। %% d ইন (বিন, অবজেক্ট, অ্যাপ_ডাটা, প্যাকেজ) @ @ এর কি উপস্থিত রয়েছে "%% d" rd / s / q "%% d"
রিকআ্যান্ডএন্ডএমএসএফটি

3
@ পারোক্স আপনার এটি একটি .bat ফাইলের মধ্যে চালানো দরকার
জেমস এল

33

আমি এটি অর্জনের জন্য আমার সমাধানগুলিতে সর্বদা একটি নতুন লক্ষ্য যুক্ত করতে ব্যবহার করি।

<Target Name="clean_folders">
  <RemoveDir Directories=".\ProjectName\bin" />
  <RemoveDir Directories=".\ProjectName\obj" />
  <RemoveDir Directories="$(ProjectVarName)\bin" />
  <RemoveDir Directories="$(ProjectVarName)\obj" />
</Target>

এবং আপনি কমান্ড লাইন থেকে কল করতে পারেন

msbuild /t:clean_folders

এটি আপনার ব্যাচের ফাইল হতে পারে।

msbuild /t:clean_folders
PAUSE

এই যেহেতু আপনি তাদের উপর কাস্টম লক্ষ্যমাত্রা কল করতে পারবেন না অথবা আপনি এই জন্য একটি কার্যসংক্রান্ত জানো একটি SLN ফাইলের জন্য কাজ করে না
পাযত্র Owsiak

3
@ পাইওট্রোউসিয়াক হ্যাঁ, আপনার নিজের একই ডিরেক্টরিতে যেখানে "। MySlnFileName.sln.targets" ফাইল তৈরি করতে হবে এবং আপনার টার্গেট সংজ্ঞা সেখানে
রেখেছেন

2
আপনি টার্গেটের একটি বৈশিষ্ট্য হিসাবে আফটারটাইজস = "ক্লিন" যুক্ত করতে পারেন, এটি পুনঃনির্মাণের সময় প্রত্যক্ষ বা পরোক্ষভাবে ডাকা হয় এমন ক্লিনের পরে স্বয়ংক্রিয়ভাবে ডাকা হবে
নিউটোপিয়ান

29

এটি করার জন্য আমি একটি পাওয়ারশেল স্ক্রিপ্ট লিখেছিলাম ।

সুবিধাটি হ'ল এটি মুছে ফেলা ফোল্ডারগুলির একটি সংক্ষিপ্তসার প্রিন্ট করে এবং যদি আপনি কোনও সাবফোল্ডার শ্রেণিবিন্যাস উপেক্ষা করে নির্দিষ্ট করে থাকেন তবে তা উপেক্ষা করা হবে।

আউটপুট উদাহরণ


1
+1 খুব সুন্দর! সবেমাত্র জানতে পেরেছিলাম যে আমরা উইন্ডো পাওয়ার শেলটিতে একটি পূর্ণ-আনুষাঙ্গিক ডিবাগারের মতো ভেরিয়েবলগুলি ডিবাগ করতে এবং দেখতে পারি!
wiz -_- লি

আমি এই সমাধানটি পছন্দ করি। আমাকে ভিজ্যুয়াল স্টুডিওতে গোলযোগ করতে হবে না এবং আমি যখন চাই তখন এটি চালাতে পারি। খুব সুন্দর!
হ্যালসিওন

আমার প্রয়োজনগুলি নিখুঁতভাবে স্যুট করে তবে আমি নিশ্চিত নই কেন এটি একটি পূর্ণ বিকাশের রেপোর চেয়ে সংক্ষিপ্ত বিবরণ হতে পারে না। :-)
ড্যান অ্যাটকিনসন

চমৎকার কাজ! আমি সমস্ত ডিরেক্টরি স্ক্যানিং বাদ দেব কারণ আপনার যখন হাজারো উপ-ডিরেক্টরি রয়েছে তখন এটি বেশ ধীর হতে পারে। কেবলমাত্র পরিসংখ্যানগুলির জন্য খুব বেশি দাম :-)। এছাড়াও আমি পরিবর্তনশীল সংজ্ঞাতে $_ -notmatch 'node_modules'শর্ত যুক্ত করব$FoldersToRemove
টমিনো

16

আমার পক্ষে কিছুই কাজ করেনি। ডিবাগ এবং রিলিজের জন্য আমার বিন এবং আপত্তি ফোল্ডারে সমস্ত ফাইল মুছতে হবে। আমার সমাধান:

রাইট ক্লিক প্রকল্প, আনলোড, ডান ক্লিক আবার সম্পাদনা করুন, নীচে যান

2.Insert

<Target Name="DeleteBinObjFolders" BeforeTargets="Clean">
  <RemoveDir Directories="..\..\Publish" />
  <RemoveDir Directories=".\bin" />
  <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>

3. সংরক্ষণ করুন, প্রকল্পটি পুনরায় লোড করুন, ক্লিন এবং ডেস্কটপ ক্লিক করুন।


13

এর মতো কিছু এটি একটি সুন্দর মার্জিত উপায়ে করা উচিত, পরিষ্কার লক্ষ্য পরে:

<Target Name="RemoveObjAndBin" AfterTargets="Clean">
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <RemoveDir Directories="$(TargetDir)" />
</Target>

7

বিল্ড এবং আপত্তিটি মুছে ফেলার জন্য প্রজেক্ট ফাইলটিতে যুক্ত করার আগে:

<Target Name="BeforeBuild">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

নিবন্ধটি এখানে: বিল্ড বা স্থাপনার আগে বিন এবং / অথবা objজ ফোল্ডারটি কীভাবে সরিয়ে ফেলা যায়


1
যদিও আপনি কেবল এটি পুনর্নির্মাণে করতে চাইবেন। আপনি না চাইলে প্রতিটি বিল্ড একটি পুনর্নির্মাণ হতে পারে!
জোশ এম

4

স্টিভের পাওয়ারশেল স্ক্রিপ্টগুলির সাথে খুব মিল। বেশিরভাগ প্রকল্পের জন্য এটি প্রয়োজন হিসাবে আমি এটিতে কেবল টেস্টআরসাল্টস এবং প্যাকেজগুলি যুক্ত করেছি added

Get-ChildItem .\ -include bin,obj,packages,TestResults -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

3

ক্লিনপ্রজেক্টটি একবার দেখুন , এটি বিন ফোল্ডার, আইজেক্ট ফোল্ডার, টেস্টারসাল্টস ফোল্ডার এবং পুনঃভাগ ফোল্ডারগুলি মুছে ফেলবে। উত্স কোডও উপলব্ধ।


প্রকল্পটি এখানে চলে গেছে বলে মনে হচ্ছে: কোড. msdn.microsoft.com/windowsdesktop/…
জনি স্কোভডাল

3

ওজেট, বিন এবং রিশার্পার ফোল্ডারগুলি অপসারণের জন্য উইন্ডোজ পাওয়ারশেল ব্যবহার থেকে

সংক্ষিপ্ত বাক্য গঠন সহ রবার্ট এইচ উত্তরের সাথে খুব মিল

  1. পাওয়ারশেল চালান
  2. আপনার প্রকল্প ফোল্ডারের রুটে সিডি (পরিবর্তন ডির) করুন
  3. স্ক্রিপ্টের নীচে পেস্ট করুন এবং চালান

    dir। bin -বিন , আপত্তি , পুনঃশিকারী * অন্তর্ভুক্ত করুন | foreach ($ ) {rd $ _। পুরো নাম ecপ্রশ্ন –ফর্স}


3

খুব দ্রুত এবং ব্যথাহীন উপায় হ'ল rimrafএনপিএম ইউটিলিটিটি ব্যবহার করা, এটি বিশ্বব্যাপী ইনস্টল করুন:

> npm i rimraf -g

এবং তারপরে আপনার প্রকল্পের মূল থেকে কমান্ডটি বেশ সহজ (যা কোনও স্ক্রিপ্ট ফাইলে সংরক্ষণ করা যায়):

projectRoot> rimraf **/bin **/obj

পছন্দসই প্রভাবটি অনুকূলিত করতে আপনি প্রকল্প ইভেন্টের লক্ষ্যগুলি (আপনি যেটি ব্যবহার করতে পারেন তা হ'ল BeforeRebuildএটি পূর্ববর্তী কমান্ডটি চালিত করতে পারেন) যা ডক্সে সুনির্দিষ্ট করা হয়েছে: https://docs.microsoft.com/en-us/visualstudio/ msbuild / কিভাবে-থেকে-প্রসারিত-ভিজুয়াল-স্টুডিওতে-বিল্ড প্রক্রিয়ার? দৃশ্য = বনাম-2017

আমি রিমরাফ ইউটিলিটিটি পছন্দ করি কারণ এটি ক্রসপ্ল্যাট এবং সত্যই দ্রুত। তবে, আপনি RemoveDirযদি টার্গেট ইভেন্ট বিকল্পটি নিয়ে যাওয়ার সিদ্ধান্ত নেন তবে আপনি .csproj এ কমান্ডটিও ব্যবহার করতে পারেন । এই RemoveDirপদক্ষেপটি এখানে আরও একটি উত্তরে ব্যাখ্যা করা হয়েছে @ শামান দ্বারা: https://stackoverflow.com/a/22306653/1534753


2

সরল, সহজ, খুব ভাল কাজ করে এবং ভিজ্যুয়াল স্টুডিওতে আপনার ইতিমধ্যে যা আছে তার চেয়ে অন্য কোনও কিছুর প্রয়োজন নেই এর অনুরূপ প্রশ্নের আমি উত্তরটি এখানে দিয়েছি।

অন্যরা যেমন ইতিমধ্যে সাড়া ফেলেছে তেমন বিল্ড দ্বারা উত্পন্ন সমস্ত শিল্পকর্ম সরিয়ে ফেলবে। তবে এটি সমস্ত কিছু পিছনে ফেলে দেবে।

আপনার এমএসবিল্ড প্রকল্পে যদি আপনার কিছু কাস্টমাইজেশন থাকে তবে এটি সমস্যাটি বানান করতে পারে এবং আপনার জিনিসগুলি মুছে ফেলা উচিত বলে মনে করতে পারে।

আপনার এক সাধারণ পরিবর্তনের মাধ্যমে আপনি এই সমস্যাটি সমাধান করতে পারেন *

<Target Name="SpicNSpan"
        AfterTargets="Clean">
    <RemoveDir Directories="$(OUTDIR)"/>
</Target>

যা আপনার বর্তমান প্ল্যাটফর্ম / কনফিগারেশনের বিন ফোল্ডারের সমস্ত কিছু সরিয়ে ফেলবে।


2

এটি আমার ব্যাচের ফাইল যা আমি সমস্ত বিআইএন এবং ওবিজে ফোল্ডারগুলি পুনরাবৃত্তভাবে মোছার জন্য ব্যবহার করি।

  1. একটি খালি ফাইল তৈরি করুন এবং এর নাম মুছুনবিনবজফোল্ডার্স.বাট
  2. ডিলিটবিনবজফোল্ডার্স.বাটে নীচের কোডটি কপি-পেস্ট করুন
  3. সরান DeleteBinObjFolders.bat আপনার সমাধান (* .sln) ফাইল সঙ্গে একই ফোল্ডারে ফাইল।
@echo off
@echo Deleting all BIN and OBJ folders...
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
@echo BIN and OBJ folders successfully deleted :) Close the window.
pause > nul

1

'পরিষ্কার' কি যথেষ্ট নয়? মনে রাখবেন আপনি / টি সহ এমএসবিল্ডকে কল করতে পারেন: কমান্ড-লাইন থেকে পরিষ্কার করুন।


7
আসলে "পরিষ্কার" যথেষ্ট ভাল নয়। এমইএফ ব্যবহার করার সময় এটি বিশেষভাবে সত্য। "ক্লিন সলিউশন" আপনার মুছে ফেলা রেফারেন্সগুলি থেকে মুক্তি পাবে না যা কোনও ফোল্ডারের ডিএলএলগুলি ডায়নামিকভাবে লোড করার সময় সমস্যার কারণ হতে পারে।
অ্যালেক্স

5
পুরানো বা অপ্রত্যাশিত জিনিসগুলি বিন / অবজেক্ট ফোল্ডারে বসে যে "ক্লিন" করে মুছে ফেলা হয় না তার ফলে প্রচুর "আমার মেশিনে কাজ করে" বাগগুলি ঘটে।
লুক

1

আমাদের বিল্ড সার্ভারে, আমরা স্পষ্টভাবে ন্যান্ট স্ক্রিপ্টগুলির মাধ্যমে বিন এবং অবজেক্ট ডিরেক্টরিগুলি মুছি।

প্রতিটি প্রকল্প বিল্ড স্ক্রিপ্ট এর আউটপুট / অস্থায়ী ডিরেক্টরিগুলির জন্য দায়ী। সেভাবে সুন্দরভাবে কাজ করে। সুতরাং যখন আমরা কোনও প্রকল্প পরিবর্তন করি এবং একটি নতুন যুক্ত করি, তখন আমরা স্ক্রিপ্টটি একটি কার্যকারী স্ক্রিপ্টের বাইরে রাখি এবং আপনি মুছার পর্যায়টি লক্ষ্য করেন এবং এটির যত্ন নেন।

আপনি যদি লজিক ডেভলপমেন্ট মেশিনে এটি করেন, অন্যরা যেমন উল্লেখ করেছেন তেমন আমি ভিজ্যুয়াল স্টুডিওর মাধ্যমে পরিষ্কার করতে থাকব।


কখনও কখনও আমি অবশ্যই নিশ্চিত হতে হবে যে সমস্ত বিল্ডগুলি সম্পূর্ণ নতুন। আমি এটি করার জন্য পরিষ্কার সমাধানের উপর বিশ্বাস করতে পারি না। বিন এবং আপত্তিটি প্রায়শই আরও নির্ভরযোগ্য প্রমাণিত হয়েছে
মাইকেলডি

আমাদের জন্য, কেবল 'বিল্ড মেশিন' থেকে নির্মিত বিল্ডগুলি পরীক্ষা করা হয়, বা উত্পাদনে ব্যবহৃত হয়, সুতরাং বিকাশকারীদের অবশ্যই 'সমস্ত পরিষ্কার' টাইপ সমস্যা হওয়া উচিত নয়, এবং বিল্ড সার্ভার তা করে। এছাড়াও এর অর্থ কোনও পূর্ণ বিকাশ করার জন্য কোনও বিকাশকারীর প্রয়োজন হয় না।
সাইমন পিলগ্রিম

1
ন্যান্ট দিয়ে এটি করার সহজতম উপায় কী? আমার কয়েক ডজন প্রকল্পের শ্রেণিবিন্যাস রয়েছে এবং আমি মুছে ফেলার স্ক্রিপ্টে ভুল ফায়ার করব না। =)
এমপন্টিলো

আমাদের অনেক এক্সিকিউটেবল / ডিএলএস 'সম্পদ' নির্মিত হয়েছে, সুতরাং সম্পদ প্রতি আমাদের কাছে এটি তৈরি করে একটি ন্যান্ট স্ক্রিপ্ট রয়েছে। প্রত্যেকের জন্য একটি মুছুন বিভাগ রয়েছে যেখানে আমরা প্রতিটি ডিবাগ / রিলিজ বিন / অবজেক্ট ডিরেক্টরি যা আমরা মুছতে চাই তার জন্য একটি লাইন রাখি।
সাইমন পিলগ্রিম

1

উত্স গাছগুলিতে লিটার লাগানোর জন্য আমি আসলে আপত্তিজনক ফাইলগুলিকে ঘৃণা করি। আমি সাধারণত প্রকল্পগুলি সেটআপ করি যাতে তারা উত্স গাছের বাইরে ফাইলগুলি আউটপুট দেয়। সি # প্রকল্পের জন্য আমি সাধারণত ব্যবহার করি

 <IntermediateOutputPath>..\..\obj\$(AssemblyName)\$(Configuration)\</IntermediateOutputPath>

সি ++ প্রকল্পের জন্য

 IntermediateDirectory="..\..\obj\$(ProjectName)\$(ConfigurationName)"

1

http://vsclean.codeplex.com/

কমান্ড লাইন সরঞ্জাম যা ভিজ্যুয়াল স্টুডিও সমাধানগুলি সন্ধান করে এবং সেগুলিতে ক্লিন কমান্ড চালায়। এটি আপনাকে আপনার হার্ডড্রাইভের আশেপাশে থাকা সমস্ত পুরানো প্রকল্পগুলির / বিন / * ডিরেক্টরিগুলি পরিষ্কার করতে দেয়


1

আপনি প্রকৃতপক্ষে PS পরামর্শটি আরও খানিকটা এগিয়ে নিয়ে যেতে পারেন এবং প্রকল্প ডিরেক্টরিতে এটির মতো একটি ভিবিএস ফাইল তৈরি করতে পারেন:

Option Explicit
Dim oShell, appCmd
Set oShell  = CreateObject("WScript.Shell")
appCmd      = "powershell -noexit Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse -WhatIf }"
oShell.Run appCmd, 4, false

সুরক্ষার জন্য, আমি -WhatIf পরামিতি অন্তর্ভুক্ত করেছি, সুতরাং আপনি যদি প্রথম রানের তালিকায় সন্তুষ্ট হন তবে এটি সরিয়ে দিন।


1

আমি রবার্ট এইচ এর সামান্য পরিবর্তন ব্যবহার করি যা ত্রুটিগুলি এড়িয়ে যায় এবং মুছুন ফাইলগুলি মুদ্রণ করে। আমি usally এছাড়াও পরিষ্কার .vs, _resharperএবং packageফোল্ডারসমূহ:

Get-ChildItem -include bin,obj,packages,'_ReSharper.Caches','.vs' -Force -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse -ErrorAction SilentlyContinue -Verbose}

লক্ষ্য করার মতো বিষয় হ'ল gitকমান্ড যা সমস্ত পরিবর্তনকে অন্তর্ভুক্ত ফাইল এবং ডিরেক্টরিগুলি অন্তর্ভুক্ত করে:

git clean -dfx

0

আমাদের কাছে অনেকগুলি প্রজেক্ট ফাইল সহ একটি বড় .SLN ফাইল রয়েছে। আমি একটি "ভিউলোকাল" ডিরেক্টরি থাকার নীতি শুরু করেছি যেখানে সমস্ত অ-উত্স নিয়ন্ত্রণকারী ফাইলগুলি অবস্থিত। ডিরেক্টরিটির ভিতরে একটি 'ইন্টার' এবং একটি 'আউট' ডিরেক্টরি রয়েছে। মধ্যবর্তী ফাইল এবং আউটপুট ফাইলগুলির জন্য যথাক্রমে।

এটি স্পষ্টতই আপনার 'ভিউলোকল' ডিরেক্টরিতে যেতে এবং সমস্ত কিছু থেকে মুক্তি পাওয়ার জন্য একটি সরান মুছে ফেলা সহজ করে তোলে।

স্ক্রিপ্টগুলির সাথে এটিকে ঘিরে কাজ করার উপায় বের করতে আপনি সময় ব্যয় করার আগে আপনি অনুরূপ কিছু সেট আপ করার বিষয়ে ভাবতে পারেন।

যদিও আমি মিথ্যা বলব না, একটি বৃহত প্রতিষ্ঠানের এমন সেটআপ বজায় রাখা প্রমাণ করেছে .... আকর্ষণীয়। বিশেষত যখন আপনি কিউটি-র মতো প্রযুক্তি ব্যবহার করেন যা ফাইলগুলি প্রক্রিয়া করতে এবং অ-উত্স-নিয়ন্ত্রিত উত্স ফাইলগুলি তৈরি করতে পছন্দ করে। তবে এটি সম্পূর্ণ অন্য গল্প!


0

PS1 ফাইলটি বিবেচনা করে বর্তমান ফোল্ডারে উপস্থিত রয়েছে (যে ফোল্ডারের মধ্যে আপনাকে বিন এবং আপত্তি ফোল্ডারগুলি মুছতে হবে)

$currentPath = $MyInvocation.MyCommand.Path
$currentFolder = Split-Path $currentPath

Get-ChildItem $currentFolder -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }

0

ব্যাচে সমাধানের জন্য। আমি নিম্নলিখিত কমান্ডটি ব্যবহার করছি:

FOR /D /R %%G in (obj,bin) DO @IF EXIST %%G IF %%~aG geq d RMDIR /S /Q "%%G"


DIR /S /AD /B xxx
১ ব্যবহার না করার কারণটি DIR /S /AD /B objখালি তালিকা ফিরে আসবে (কমপক্ষে আমার উইন্ডোজ 10 এ) 2. ফলাফলটি ধারণ করবে যা প্রত্যাশিত নয় (টোবিজে ফোল্ডার) এখানে চিত্র বর্ণনা লিখুন
DIR /S /AD /B *objএখানে চিত্র বর্ণনা লিখুন


@IF EXIST %%G IF %%~aG geq dবিদ্যমান পাথ চেক করার জন্য ব্যবহৃত হয় এবং পাথটি কোনও ফোল্ডার নয় কোনও ফাইল।
xianyi

0

এটি আমার জন্য দুর্দান্ত কাজ করে: / ডি / আর এর জন্য শুরু করুন। %% d ইন (বিন, অবজেক্ট, ক্লায়েন্টবিন, জেনারেটেড_কোড) @ @ বিদ্যমান থাকলে "%% d" আরডি / এস / কিউ "%% d"


0

আমি এই কমডের সাহায্যে .bat ফাইলটি ব্যবহার করি।

for /f %%F in ('dir /b /ad /s ^| findstr /iles "Bin"') do RMDIR /s /q "%%F"
for /f %%F in ('dir /b /ad /s ^| findstr /iles "Obj"') do RMDIR /s /q "%%F"

-1

আমি মনে করি আপনি নিজের সমাধান / প্রকল্পে ডান ক্লিক করতে পারেন এবং "পরিষ্কার" বোতামটি ক্লিক করতে পারেন।

যতদূর আমার মনে আছে এটি এমনভাবে কাজ করে যাচ্ছিল। আমার সাথে এখন আমার ভিএসএন নেট নেই তাই এটি পরীক্ষা করতে পারছি না।


এটি সঠিক, এবং এখনও পর্যন্ত সমস্ত প্রস্তাবিত সমাধানগুলির মধ্যে সর্বাধিক সহজ এবং সহজতম (এটি নির্দিষ্ট পরিস্থিতিতে উপযুক্ত বলে মনে করে ....)
ক্রিস হালক্রো

8
দুঃখিত, তবে এটি সত্য নয়। এটি সমস্যার মূল কারণ / আপজের বিষয়বস্তু মুছে দেয় না। কমপক্ষে এটি ভিএস 2013 আপডেট 3
-র

VS2013 আপডেট 4 নিয়ে সবে একই সমস্যা ছিল Note (দ্রষ্টব্য: VS2010 ভাল করছে)
juFo

আরও ভাল ব্যাখ্যার জন্য এই উত্তরটি দেখুন (এটি একই একই প্রশ্নে): stackoverflow.com/a/18317221/374198
জোশ এম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.