উইন্ডোজ on-তে ব্যাচ ফাইলের মাধ্যমে আমি ডিরেক্টরি গাছগুলি কীভাবে মুছব?


36

আমি ব্যাচ ফাইলের মাধ্যমে উইন্ডোজ 7 এ একটি নির্দিষ্ট ফোল্ডারের পুরো সামগ্রী মুছতে চাই। আমার সমস্যাটি হ'ল, 'ডেল' বা 'মুছে ফেলুন' কেবল ফাইলগুলি মুছে ফেলবে, ফোল্ডারগুলি নয় এবং 'আরএমডিির' বা 'আরডি' সর্বদা নির্দিষ্ট সামগ্রীটিকে তার সামগ্রী দিয়ে মুছে দেয় তবে আমি কেবল সামগ্রীটি মুছতে চাই, ফোল্ডারটি নিজেই নয় । আমি ' rmdir /S /Q "C:\Share\*"' কমান্ডটি চেষ্টা করেছিলাম যা আমাকে একটি সিনট্যাক্স ত্রুটি করেছিল।

এটি করার সঠিক উপায় কী?

আমি উইন্ডোজ 7 পেশাদার 64৪-বিটে কাজ করছি এবং প্রশাসকের অনুমতি রয়েছে।

উত্তর:


36

আপনার ব্যাচ ফাইলে দুটি কমান্ড চালানো দরকার, একটি ফাইল সাফ করার জন্য একটি চাইল্ড ডিরেক্টরিগুলি মুছে ফেলার জন্য। আপনি যে ডিরেক্টরিটি সরাতে চান তা আমি ধরে নিয়েছিC:\Share\

ব্যাচ ফাইলটির কিছু দেখতে হবে:

del /s /f /q c:\share\*.*
for /f %%f in ('dir /ad /b c:\share\') do rd /s /q c:\share\%%f

del /s /f /q ডিরেক্টরি গাছটি পুনরুদ্ধার করে নিশ্চিতকরণের জন্য অনুরোধ না করে কোনও ফাইল (এমনকি কেবল ফাইলগুলি পড়ুন) মুছে ফেলা হবে।

দ্বিতীয় লাইনটি সমস্ত সাব ডিরেক্টরিতে লুপ করে (যা এখন খালি হওয়া উচিত) এবং সেগুলি সরিয়ে দেয়।

পুরো ফোল্ডারটি মুছে ফেলা এবং এটি পুনরুদ্ধার করার সংক্ষিপ্ততা (যা আমি মনে করি না যে আপনি অনুমতিগুলির কারণে করতে চান?) ফোল্ডারটি সাফ করার সহজ উপায় এটি হওয়া উচিত।


যদি আমি এখানে "f /%% f" -> "/ f% f" এর জন্য কিছুটা সংশোধন করি তবে এটি ঠিকঠাক কাজ করে :) আপনাকে অনেক ধন্যবাদ।
মাইকেল কে

6
delপ্রয়োজন হয় না. rd/s/qফাইল এবং সাবফোল্ডার উভয়ই মুছে ফেলবে।
মাধ্যাকর্ষণ

1
@ গ্রাভিটি delমূলত মূল ফোল্ডারে যে কোনও ফাইলের জন্য রয়েছে, যদিও পুনরাবৃত্তি স্যুইচটি সরিয়ে ফেলতে পারে।
উইন্ডোজ

5
@ মিশেলকে, %% f ব্যাচ ফাইলগুলিতে ব্যবহারের জন্য,% f যখন এটি একক কমান্ড সরাসরি কমান্ড লাইনে আসে তখন।
Windos

1
তাহলে সাব নামের কোনো খালি জায়গা থাকা, আপনি "delims =" (জন্য / এফ তাদের সঠিকভাবে প্রক্রিয়া যোগ করতে পারেন "delims =" দেখুন: %% চ মধ্যে ...) stackoverflow.com/q/5553040/64918
goldPseudo

27
rmdir /s/q C:\Share

আপনি একটি "সিনট্যাক্স ত্রুটি" পেয়েছেন কারণ rmdirকেবল ওয়াইল্ডকার্ড নয় পুরো নাম গ্রহণ করে। (ইন cmd.exe, ওয়াইল্ডকার্ড সম্প্রসারণ পৃথক প্রোগ্রামগুলিতে ছেড়ে যায়; তাদের সবকটিই করে না))

আপনার সাথে শুরু অনেক ডিরেক্টরি থাকে তাহলে Share..., একটি ব্যবহার forলুপ।

for /d %f in (C:\Share*) do rmdir /s/q "%f"

3
আমি ভাগ ফোল্ডারটি মুছতে চাই না।
মাইকেল কে


2

কি সম্পর্কে ?

rmdir /S /Q "target"
mkdir "target

সম্পাদনা: অবশ্যই এই সমাধানটি তখনই প্রযোজ্য যখন আপনি ক্ষণিকের ফোল্ডারের অনুপস্থিতি সহ্য করতে পারবেন।


এটি মূল ফোল্ডারটি মুছবে।
মাইকেল কে

@ মিশেলক আমার কাজটি একটি ক্ষণিকের ফোল্ডারের অনুপস্থিতি সহ্য করতে সক্ষম হয়েছিল, তাই আমি এই সমাধানটি দিয়ে চলেছি। আমি ভেবেছিলাম, এটি for /fখনিতে অনুরূপ ক্ষেত্রেগুলির চেয়ে সহজ এবং আরও পঠনযোগ্য । কেবল ভাগ করে নিতে চেয়েছিলেন
ভাসিলি.প্রকোপায়েভ

2
for /f "delims=" %%f in ('dir /ad /b c:\share\') do rd /s /q c:\share\%%f

সাবডাইরেক্টরিগুলিতে ফাঁকা রয়েছে এমন অন্যান্য ডিরেক্টরি থাকলে এটি কাজ করে না।

এই কাজটি করার জন্য, আমাকে এই জাতীয় চূড়ান্ত স্ট্রিংটি উদ্ধৃত করা দরকার

/ f "delims =" %% f in ('dir / ad / bc: \ share \') do rd / s / q "c: \ share \ %% f"

স্পষ্টতই, এর ফলে কমান্ডটি কেবল স্ট্রিংয়ের পরিবর্তে উদ্ধৃত স্ট্রিংয়ে কাজ করতে পারে।


0

আমি এটি ফোল্ডারে চেষ্টা করব যেখানে সমস্ত সাবফোল্ডারগুলি মুছে ফেলা উচিত তবে মূল (এবং মূলের ফাইলগুলি) যেমন রয়েছে তেমনই রেখে গেছে: / D% v এর জন্য (*) rd / s / q% v করুন

/ ডি ডিরেক্টরিগুলির সাথে মেলে এবং rd / s / q একসাথে প্রতিটি মুছে দেয়


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.