একটি নির্দিষ্ট ব্যাচের ফাইল (এক্সটেনশন) সমস্ত ফাইল মুছুন পুনরাবৃত্তভাবে একটি ব্যাচ ফাইল ব্যবহার করে একটি ডিরেক্টরি ডাউন করুন


86

আমার সমস্ত .jpg এবং .txt ফাইলগুলি মুছতে হবে (উদাহরণস্বরূপ) dir1 এবং dir2 এ।

আমি যা চেষ্টা করেছি তা হ'ল:

@echo off
FOR %%p IN (C:\testFolder D:\testFolder) DO FOR %%t IN (*.jpg *.txt) DO del /s %%p\%%t

কিছু ডিরেক্টরি এটি কাজ করে; অন্যদের মধ্যে এটি না।

উদাহরণস্বরূপ, এটি কিছুই করেনি:

@echo off
FOR %%p IN (C:\Users\vexe\Pictures\sample) DO FOR %%t IN (*.jpg) DO del /s %%p\%%t

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


আপনি ঠিক কীভাবে এটি "কাজ করে না" সে সম্পর্কে আরও তথ্য সরবরাহ করলে এটি সহায়তা করবে । আসল ফলাফলটি কীভাবে প্রত্যাশিত ফলাফল থেকে পৃথক হয়? আপনি কি একটি ত্রুটি বার্তা পান? কোনটি?
আনসগার ওয়াইচারস

উত্তর:


208

আপনি delকমান্ডটি সহ ওয়াইল্ডকার্ডগুলি ব্যবহার করতে পারেন এবং /Sএটি পুনরাবৃত্তভাবে করতে পারেন।

del /S *.jpg

সংযোজন

@ বিমিগুয়েস্ট জিজ্ঞাসা করেছিল যে কেন একটি নিম্নচিকিত উত্তর ( del /s c:\*.blaawbg) আমার উত্তরের চেয়ে আলাদা ছিল।

দৌড়ানো এবং এর মধ্যে একটি বিশাল পার্থক্য রয়েছে । প্রথম কমান্ডটি বর্তমান অবস্থান থেকে কার্যকর করা হয় , যেখানে দ্বিতীয়টি পুরো ড্রাইভে কার্যকর করা হয়del /S *.jpgdel /S C:\*.jpg

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

তবে, আপনি যদি কোনও প্রকল্পে কাজ করছেন এবং আপনার সমস্ত dllফাইল মুছতে চান myProject\dllএবং নীচের ব্যাচ ফাইলটি চালাতে চান:

@echo off

REM This short script will only remove dlls from my project... or will it?

cd \myProject\dll
del /S /Q C:\*.dll

তারপরে আপনি সমস্ত dllফাইল মুছে ফেলা আপনার C:\ড্রাইভ তৈরি করে। আপনার সমস্ত অ্যাপ্লিকেশন কাজ করা বন্ধ করে দেয়, আপনার কম্পিউটার অকেজো হয়ে যায়, এবং পরবর্তী পুনরায় বুট করার সময় আপনি চতুর্থ মাত্রায় টেলিপোর্ট করা হয় যেখানে আপনি চিরকালের জন্য আটকে থাকবেন।

এখানে পাঠটি হ'ল কোনও ড্রাইভের মূল (বা অন্য কোনও জায়গায় বিপজ্জনক হতে পারে, যেমন %windir%) আপনি যদি এড়াতে পারেন তবে সরাসরি এই কমান্ডটি চালানো নয়। এগুলি সর্বদা স্থানীয়ভাবে চালান run

সংযোজন 2

ওয়াইল্ডকার্ড পদ্ধতিটি সমস্ত ফাইলের নামের সাথে তাদের 8.3 ফর্ম্যাট এবং তাদের "দীর্ঘ নাম" ফর্ম্যাটে মিলানোর চেষ্টা করবে। উদাহরণস্বরূপ, *.dllমিলবে project.dll এবং project.dllold যা আশ্চর্যজনক হতে পারে। আরও বিস্তারিত তথ্যের জন্য এসইউতে এই উত্তরটি দেখুন ।


4
pauseশেষ পর্যন্ত একটি লাইন যুক্ত করা ব্যবহারকারীর সম্পূর্ণ লগ তথ্য দেখতে দেবে।
KNU

4
পরিসংখ্যানের জন্য ধন্যবাদ, Laf আমি মনে করি এটি অন্যকে সত্যই গুরুত্বপূর্ণ পার্থক্য চিহ্নিত করতে সহায়তা করবে।
BmyGuest

কেহ চান একটি নির্দিষ্ট Dir থেকে মুছে ফেলতে থাকে, তাহলে আপনি একত্রিত করতে পারেন cdএবং delসঙ্গে কমান্ড `& 'দেখতে stackoverflow.com/q/8055371/7429464
FindOutIslamNow

@FindOutIslam এখন বা আপনি delবর্তমান ডিরেক্টরিটি পরিবর্তন না করেই কমান্ডের পুরো পথ নির্দিষ্ট করতে পারবেন ।
লাফ

4
আমি লক্ষ্য করেছি যে আমি যখন এটি করি, এটি নির্দিষ্ট ফাইলের সাথে শুরু হওয়া কোনও ফাইল এক্সটেনশন মুছে দেয়। উদাহরণস্বরূপ, যদি আমার একটি ফোল্ডারে .jsxফাইল এবং .jsxbinফাইল থাকে এবং del /S *.jsxএটি ব্যবহার করে তবে এটি .jsxbinফাইলগুলিও মুছে দেয় । চারপাশে উদ্ধৃতি দেওয়া *.jsxকোনও পরিবর্তন করেনি। ঠিক কীভাবে নির্দিষ্ট এক্সটেনশান দিয়ে ফাইলগুলি মুছতে বাধ্য করার কোনও উপায় আছে?
মার্টি

4

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

@ECHO OFF
CLS

SET found=0
ECHO Enter the file extension you want to delete...
SET /p ext="> "

IF EXIST *.%ext% (           rem Check if there are any in the current folder :)
  DEL *.%ext%
  SET found=1
)
FOR /D /R %%G IN ("*") DO (  rem Iterate through all subfolders
  IF EXIST %%G CD %%G
  IF EXIST *.%ext% (
    DEL *.%ext%
    SET found=1
  )
)

IF %found%==1 (
  ECHO.
  ECHO Deleted all .%ext% files.
  ECHO.
) ELSE (
  ECHO.
  ECHO There were no .%ext% files.
  ECHO Nothing has been deleted.
  ECHO.
)

PAUSE
EXIT

আশা করি এটি যে কারও কাছে কাজে লাগবে :)


বিকল্পভাবে, যদি আপনি বাশ ইনস্টল করে থাকেন (সাইগউইন, ডাব্লুএসএল, ইত্যাদি), তবে একটি সরল find . -name "*.ext" -type f -delete(যেখানে আপনার নির্বাচিত এক্সটেনশনটি হবে) কাজ করবে।
পিরাগ্লাইফ

3

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

DEL "C:\Folder\*.*" /S /Q

বা কেবলমাত্র কিছু নির্দিষ্ট ফাইলের ধরন মুছতে এটি ব্যবহার করুন:

DEL "C:\Folder\*.mp4" /S /Q 
DEL "C:\Folder\*.dat" /S /Q 

0

মন্তব্য যুক্ত করার মতো যথেষ্ট খ্যাতি আমার নেই, তাই আমি এটি উত্তর হিসাবে পোস্ট করেছি। তবে এই আদেশের সাথে মূল সমস্যার জন্য:

@echo off
FOR %%p IN (C:\Users\vexe\Pictures\sample) DO FOR %%t IN (*.jpg) DO del /s %%p\%%t

প্রথমটির জন্য রিকার্সিভ সিনট্যাক্সের অভাব রয়েছে, এটি হওয়া উচিত:

@echo off
FOR /R %%p IN (C:\Users\vexe\Pictures\sample) DO FOR %%t IN (*.jpg) DO del /s %%p\%%t

আপনি ঠিক করতে পারেন:

FOR %%p IN (C:\Users\0300092544\Downloads\Ces_Sce_600) DO @ECHO %%p

আসল আউটপুট দেখাতে।


0

এই হল:

@echo off

:: del_ext
call :del_ext "*.txt"
call :del_ext "*.png"
call :del_ext "*.jpg"

:: funcion del_ext
@echo off
pause
goto:eof
:del_ext
 set del_ext=%1
 del /f /q "folder_path\%del_ext%"
goto:eof

পিডি: ফোল্ডার_পথটি আপনার ফোল্ডারের সাথে প্রতিস্থাপন করুন


-9

আপনি যদি সি: ড্রাইভে নির্দিষ্ট। এক্সটেনশনগুলি মুছতে চেষ্টা করছেন তবে এই সেমিডি ব্যবহার করুন:

del /s c:\*.blaawbg

আমার একটি গ্রাহক ছিলেন যা একটি এনক্রিপশন ভাইরাস পেয়েছিল এবং আমার সমস্ত জাঙ্ক ফাইলগুলি খুঁজে বের করতে এবং সেগুলি মুছতে হবে।


13
এটি ভয়াবহরূপে অনিরাপদ বলে মনে হচ্ছে।
দুদেওয়াদ

6
এই উত্তর (-2 ভোট) এবং গৃহীত একটি (+42 ভোট) এর মধ্যে প্রধান পার্থক্য কী?
BmyGuest

6
@BmyGuest মূল পার্থক্য হ'ল আপনি যদি আমার সাব-ফোল্ডারের কোথাও আমার কমান্ড কার্যকর করেন তবে এটি কেবল এই সাবফোল্ডারের অধীন অবস্থিত ফাইলগুলিকেই প্রভাবিত করবে। এই উত্তরে, আপনি পুরো ড্রাইভে ফাইলের নামের সাথে মিলে যায় এমন সমস্ত কিছু মুছবেন । সুতরাং আপনি যদি আপনার প্রকল্পের কিছু dll ফাইল মুছতে চান এবং ভুল করে টাইপ করেন del /s c:\*.dllতবে আপনি খুব খারাপ অবাক হবেন । কখনও , পুরো ড্রাইভে যেমন কমান্ড সঞ্চালন করুন যদি না একেবারে প্রয়োজনীয়।
লাফ

4
আমি মনে করি না যে এই উত্তরটি অনেকগুলি ডাউনভোটের প্রাপ্য। উত্তরটি ব্যাখ্যা করে যে এই আদেশটি পুরো ড্রাইভের (এবং কেন) জন্য। c:যদি ব্যক্তি পুরো ড্রাইভটি না চায় তবে পছন্দসই ফোল্ডারটি প্রতিস্থাপন করা উচিত।
ব্যবহারকারী 1527152

4
আমি মনে করি এটির যতটা ডাউন-ভোট দরকার তা যদি না হয় তবে এটি যদি অস্বীকৃতি হিসাবে কাজ না করে এবং কী না করা উচিত সে সম্পর্কে সতর্ক করে। আপনি এই জাতীয় কোড অনুলিপি, আটকানো এবং কার্যকর করে সত্যিই জিনিসগুলি স্ক্রু আপ করতে পারেন। এই নিরাপদ পাঠটিকে "নিরাপদ" উপায়ে শেখানোর জন্য অনেকগুলি ইস্টার ডিম ব্যাশে তৈরি হয়েছে .. এই উদাহরণটি আপনার দিনকে নষ্ট করতে পারে। সেরা!
জ্যাকট্রেডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.