একটি বাদে সমস্ত ফাইল মুছতে এমএস-ডস কমান্ড


25

এমন কোনও এমএস-ডস কমান্ড আছে যা আমাকে বাদ দিয়ে সমস্ত ফাইল মুছতে দেয়?

নিম্নলিখিত ফাইলগুলির উদাহরণ হিসাবে বিবেচনা করুন:

a.001  
a.002  
a.003  
a.exe  
a.c  

সমস্ত ফাইল মুছে ফেলার জন্য কোন আদেশ আছে a.c?

উত্তর:


36

এটি সম্পাদন করতে আপনি forএবং ifআদেশগুলি ব্যবহার করতে পারেন :

for %i in (*) do if not "%~i" == a.c del "%~i"

এটি বর্তমান ডিরেক্টরিটি অতিক্রম করে এবং প্রতিটি ফাইলের নাম এসির সাথে তুলনা করে যদি এটি মেলে না, ফাইলটি মুছে ফেলা হবে।


এটি সাধারণ সরানোর জন্য +1 কখনই ব্যবহার করার কথা ভাবেনা ... এখানে উত্তরের উত্তম লোড!
উইলিয়াম ইলসুম

4
@ উইল, আপনি যখন forনিয়মিত ব্যবহার শুরু করেন আপনি এর জন্য সমস্ত ধরণের উন্মাদ পরিস্থিতি নিয়ে এসেছেন। :)
কেভিন

4
@ মাইক, আপনি "আই% এর জন্য (এ: \ কিছু \ পথ \ *)%% nxi == এসি ডেল% i না করে এমন কিছু করতে চান" নোট করুন যে পথটি * এ শেষ হয়, সেই ফোল্ডারে ফাইলগুলি পেতে , এবং যে তুলনাটি% x nxi এর বিপরীতে, কোনও নাম নেই name এই জাতীয় লুপগুলির জন্য ধ্বংসাত্মক হিসাবে, "এর জন্য ... যদি ... ডেল% i" কমান্ড চালানোর আগে কোন ফাইলগুলি প্রভাবিত হবে তা দেখার জন্য "এর জন্য ... ইকো% i" করাই ভাল ধারণা।
কেভিন

1
আরও ভাল ব্যবহারdel "%i"
Mugen

1
আপনার যদি IFবিবৃতিটি কেস সংবেদনশীল হওয়ার প্রয়োজন হয় তবে এটিকে পরিবর্তন করুন IF /I
জেপ

16

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

attrib +r a.c
del *.*
attrib -r a.c

10

না, নেই। আমি একটি ডিরেক্টরি তৈরি করব, এটিতে গুরুত্বপূর্ণ ফাইলটি অনুলিপি করবো, মুছুন , এবং ফাইলটি সরিয়ে দিন। তারপরে টেম্প ফাইলটি মুছুন।

mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp

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

3
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f

1
[]] কি লাভ?
বার্লপ

1
@ বারলপ: %fফাইলের নামে ফাঁকা স্থান থাকতে পারে।
প্যারাড্রয়েড

@ স্পেনড্রয়েড নো, যা এর পক্ষে সাহায্য করবে না যদি [4 r] == [4 আর] সমান প্রতিধ্বনিত হয় আমি কারও মত একইরকম দেখেছি। পরিবর্তে []. আমি কেন অনুমান করতে পারি, তবে আমি এটি এটির কারও কাছ থেকে শুনতে পাচ্ছি।
বারলপ

@ বারলপ: আপনি সেখানে কী লিখেছেন তা আমার কোনও ধারণা নেই তবে বর্গাকার বন্ধনীগুলি উদ্ধৃতি চিহ্নগুলির মতো কাজ করে।
প্যারাড্রয়েড

@ পেপারড্রয়েড সি: \> যদি [4 আর] == [4 আর] প্রতিধ্বনিত হয় <মেন্টার> ফলাফল দেয় "আর] == [এই সময়ে অপ্রত্যাশিত ছিল।" যেখানে সি: \> যদি "4 আর" == "4 আর" ইকো এবিসি ফলাফল দেয় তবে এ বিসি। সুতরাং আপনি কী ভাবেন যে তারা কোনও উপায়ে উদ্ধৃতি চিহ্নের মতো কাজ করবে? এমনকি সি: \> যদি [ab] == [আবু] প্রতিধ্বনি <বি </ em> কাজ করে না তবে অনুরূপ ত্রুটি দেয়। খ] == [এই সময়ে অপ্রত্যাশিত ছিল। সুতরাং আপনি কী ভাবেন যে তারা কোটের মতো কাজ করে?
বার্লোপ

1
FOR /F "tokens=1-4" %%a in ('dir /a:-d /b /s %app_path%^|find /v "%file%"') DO Del /q %%a %%b %%c %%d

আমি মনে করি এটি সম্ভবত সহায়ক হবে, যদি এটি ব্যাখ্যা করে যে এটি কী করে। দেখে মনে হচ্ছে এটি পুরো ফোল্ডার গাছকে অতিক্রম করে, যা আমি চাই। %app_path%এবং %file%যথাক্রমে গাছের মূল এবং ট্র্যাকিং এড়ানোর জন্য ফাইল। কী ^, এবং কেন আমরা Delকমান্ডের জন্য ফাইল প্রতি চার টোকেন পাস ?
LarsH

0

গতির জন্য, আমি ডেলেন ব্যবহার করি :

delen /! a.c

টিসিসি / এলই এর আরও শক্তিশালীdelকমান্ড রয়েছে:

del /[!a.c] *

del /[!a.c] *ইয়েল্ডসInvalid switch - "[!a.c]".
করলফিলিপ

@ কার্লফিলিপ: "টিসিসি / এলই তে" এটি দুর্দান্ত কাজ করে ।
প্যারাড্রয়েড

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