Rmdir বা rd কমান্ডের সাহায্যে ওয়াইল্ডকার্ড ব্যবহার করা


40

ধরা যাক D:ড্রাইভে কিছু ফোল্ডার রয়েছে :

D:\Air
D:\Abonden
D:\All
D:\Whatever

আমি "এ" দিয়ে শুরু করে সমস্ত ফোল্ডার মুছতে চাই (সমস্ত সাবফোল্ডার এবং ফাইল সহ)। আমি এই আদেশটি চেষ্টা করেছি:

rmdir D:\A* /s /q

যদিও আমি একটি ত্রুটি পেয়েছি :(

ফাইলের নাম, ডিরেক্টরি নাম, বা ভলিউম লেবেল বাক্য গঠন ভুল is

delকমান্ড সাথে কাজ করে *, কিন্তু আমি পাশাপাশি ফোল্ডার ডিলিট করতে হবে। কমান্ডের
মাধ্যমে এটি অর্জন করার কোনও উপায় আছে rmdir?


2
উইন্ডোজ বা ডস কমান্ড শেলগুলির বিকাশের ক্ষেত্রে ইউনিফর্মিটি এবং সাধারণ জ্ঞান কখনও কার্যকর ছিল না। দুঃখের বিষয় হ'ল সেখানে এই শাঁসগুলি বিকাশ করা হয়েছিল যা বুদ্ধিমান ডিজাইনের উপর আলোকপাত করেছিল model অবশ্যই এই শেলটি সেই ভয়ঙ্কর থেকে অস্তিত্বহীন চিন্তার প্রক্রিয়াটির একটি উদাহরণ যা এই আবর্জনাকে একসাথে চড় মারতে গিয়েছিল - আমি আশা করি আমি কী বলতে চাই যে আমি সত্যিই কী ভাবছি, হা হা।
রিক

উত্তর:


33
cd c:\temp
for /f %i in ('dir /a:d /s /b A*') do rd /s /q %i

পরীক্ষার জন্য এটি ব্যবহার করুন:

for /f %i in ('dir /a:d /s /b A*') do echo rd /s /q %i

এটি কমান্ড প্রম্পটে চালানোর জন্য কমান্ডগুলি পাইপ করে দেবে এবং যা চলছে তা দেখার অনুমতি দেয়।

মনে রাখবেন যে এটি "C: \ temp \ jjj \ aa" এর মতো সাবফোল্ডারগুলিও অনুসন্ধান করবে এবং এএএ ফোল্ডারটি মুছে ফেলবে। যদি আপনি এটি শীর্ষ স্তরের ফোল্ডারগুলি "সি: \ টেম্পে আআএ" দেখতে চান তবে "/s"কমান্ড থেকে অপসারণ করুন ।

এর চাবিটি হ'ল এ *, যেখানে আপনি আপনার অনুসন্ধানের স্ট্রিংটি রাখবেন। এই যেমন ওয়াইল্ডকার্ড যেমন গ্রহণ করবে aaa*, aaa*এবং *aaa*আপনি এটা করতে চান তাহলে।


যেমনটি রয়েছে, পাথ / ফোল্ডারের নামটিতে স্থানের অক্ষর থাকলে কমান্ডটি ভেঙে যায়।
31415

1
আমরা কি * এর জন্য "যদি উপস্থিত না থাকি EFO" যুক্ত করতে পারি?
সার্দার

3
পাথটিতে স্থানের অক্ষর থাকে তবে এটি কাজ করে: / f "delims ="% i in ('dir / a: d / s / b A *') do rd / s / q "% i"
লুইস ক্যানটারো - এমএসএফটি

5
আমি কেবল যুক্ত করতে চাই যে যদি এটি একটি ব্যাচ ফাইলের মধ্যে থেকে চালানো হয় তবে আপনার দুটি শতাংশ চিহ্ন ব্যবহার করতে হবে যাতে কমান্ডটি হয়ে যায়for /f %%i in ('dir /a:d /s /b A*') do rd /s /q %%i
ফ্রেড ক্লাউজেন

'w / sub' দুবার পতাকা ব্যবহার করার দরকার নেই :)
লুনিকন

25

ওয়াইল্ডকার্ড ব্যবহার করে ফোল্ডারগুলি মোছা হচ্ছে

rmdir/ rdএকা কমান্ড সমর্থন করে না ওয়াইল্ডকার্ড অক্ষর (যেমন, *এবং ?)। আপনি এই সীমাবদ্ধতাটিকে একটি forলুপের মধ্যে আবদ্ধ করে কাজ করতে পারেন ।

ব্যবহারের উদাহরণ

for /d %G in ("X:\A*") do rd /s /q "%~G"

দ্রষ্টব্য আপনি ফাইল এবং ফোল্ডারগুলি মোছার rdসাথে সাথে আপনি echoপ্রথমে কমান্ডটি প্রতিস্থাপন করতে চাইতে পারেন । এইভাবে আপনি এমন কোনও কিছু নিশ্চিত করতে পারেন যা আসলে মুছে ফেলা উচিত নয়।

একাধিক নিদর্শন

বিভিন্ন নিদর্শনগুলির সাথে মিলে একাধিক ফোল্ডার মুছতে সিনট্যাক্সটি খুব আলাদা নয়। @ ডিবেনহ্যাম সঠিকভাবে উল্লেখ করেছেন যে, এক-লাইন কমান্ডই যথেষ্ট। আপনি বিভিন্ন পাথ নির্দিষ্ট করতে পারেন:

for /d %G in ("X:\A*","Y:\Whatever\B*","Z:\C?D") do rd /s /q "%~G"

বোনাস - ফোল্ডারের অস্তিত্ব পরীক্ষা করা হচ্ছে

আপনি যদি নির্দিষ্ট ফোল্ডারগুলি বিদ্যমান কিনা তা পরীক্ষা করতে চান তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

dir /b /a:d "X:\A*" >nul 2>&1 && echo Folders exist. || echo No folders found.

আরও পড়া


আমরা কি * এর জন্য "যদি উপস্থিত না থাকি EFO" যুক্ত করতে পারি?
সার্দার

উদাহরণস্বরূপ আমরা ধরে নিই যে কোনও অক্ষর দিয়ে শুরু করে কোনও ফোল্ডার নেই। সুতরাং কমান্ড বি * এর জন্য যেতে হবে। আমি বুঝতে পারি না আমি ব্যাখ্যা করতে পারি কিনা :(
সর্দার

1
আমার কাছ থেকে +1 আমি ডাউন ভোট বুঝতে পারি না। যদিও আপনি আপনার সাধারণ FOR /Dএবং FOR /D /Rআদেশগুলি দিয়ে একাধিক নিদর্শন করতে পারেন । সহজভাবে ব্যবহার করুন in( "A*" "B*" "C?D" )
dbenham

1
প্রকৃতপক্ষে আপনার /Rবিকল্পটি দরকার কারণ মুখোশের সাথে মেলে এমন সাবফোল্ডারটি কোনও পিতামাতার অধীনে থাকতে পারে যা না।
dbenham

5
সতর্কতা: আপনি যদি এই সমাধানটি .bat ফাইলে ব্যবহার করতে চান তবে আপনাকে% G এর পরিবর্তে %% G ব্যবহার করতে হবে, এখানে দেখুন
ভ্যালারডোহেরিস

18

কীভাবে কেউ এখনও ওপিকে জানায়নি ফোরফাইলস সম্পর্কে ?!

forfiles /P D:\ /M A* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"

/ পি হ'ল পথের নাম - যেখানে অনুসন্ধান শুরু হয়
/ এম অনুসন্ধান মুখোশ, এ থেকে শুরু হওয়া ফাইলগুলির সন্ধান করছে
/ সি হ'ল আদেশ কার্যকর করা
/ এস পুনরাবৃত্ত সাবফোল্ডার (এখানে অন্তর্ভুক্ত করা হয়নি, কারণ ওপ জিজ্ঞাসা করেনি)

2
এটি একটি দুর্দান্ত উত্তর, গ্রহণযোগ্য উত্তর হওয়া উচিত।
eacousineau

1
খুব ভাল সমাধান এবং ভাল ব্যাখ্যা।
Andreas

দরকারী উত্তর: ডি কিন্তু আইএমও for /dহিসাবে এবং and31415 এর উত্তর পরিষ্কার এবং আরও দক্ষ উভয়ই।
সুপারল

12

adn31415 উত্তর সঠিক তবে আপনি যদি এটি একটি ব্যাচ বা সেন্টিমিডি স্ক্রিপ্টে রাখেন তবে ব্রেক হয়ে যায়। আমি বুঝতে পারছি না যে আপনি এইভাবে এটি ব্যবহার করেন।

ডস কমান্ড উইন্ডোতে:

for /d %G in ("X:\A*") do rd /s /q "%~G"

ব্যাচ বা সেন্টিমিডি স্ক্রিপ্টে:

for /d %%G in ("X:\A*") do rd /s /q "%%~G"

আপনি যদি এটি ".bat" বা ".Cmd" ফাইলে রাখতে চান তবে আপনার "%" অক্ষর দ্বিগুণ করতে হবে।


3
আপনি ব্যাচের স্ক্রিপ্টের জন্য আমার সময় বাঁচিয়েছেন!
তুয়ান

কোনও সমস্যা নেই ডাব :) এই কারণেই উত্তরটি পোস্ট করলাম কারণ আমি জানতাম এটি সুস্পষ্ট নয় এবং আরও বেশি লোক এতে প্রবেশ করবে।
স্যাম বি

মোছা না হয়ে আমরা কী বাদ দিতে পারি?
সার্দার

সেট / পি পিসি = প্রবেশ করুন আইপি বা হোস্ট নাম / ডি%% এ ইন ("\\% পিসি% \ ডি $ \ এ *। *") করুন কি আরডি / এস / কিউ "%% a" এই স্ক্রিপ্টটি সঠিকভাবে কাজ করে? ?
সার্দার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.