ব্যাচ ফাইল. ডিরেক্টরিতে সমস্ত ফাইল এবং ফোল্ডার মুছুন


135

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

বর্তমানে আমার কাছে নিম্নলিখিতগুলি রয়েছে:

cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db

এটি আমার আরএমএস ডিরেক্টরিতে সমস্ত .db ফাইল মুছে ফেলবে , তবে আমি এই ডিরেক্টরি থেকে প্রতিটি জিনিস মুছতে চাই। কিভাবে আমি এটি করতে পারব?


3
del /?প্রম্পটে টাইপ করুন । এটি আপনাকে কীভাবে সরঞ্জামটি ব্যবহার করবেন সে সম্পর্কে তথ্য দেবে। এই ক্ষেত্রে, del *.* /sকাজ করবে কিন্তু ভুল ডিরেক্টরিতে এটি করবেন না!
মাইকেল টড

35
rmdir /s /q c:\users\tbrollo\j2mewtk\2.5.2\appdb\RMS
ফোরসওয়ারির

আমি সঠিক উত্তর পরিবর্তন করতে আপ ভোটগুলি অনুযায়ী প্রস্তাব করব
গ্রেগএম

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

উত্তর:


52

del *.*পরিবর্তে del *.db। যে সবকিছু মুছে ফেলবে।


56
দ্রষ্টব্য: আপনি যদি "আপনি কি মুছে ফেলার বিষয়ে নিশ্চিত ..." বাইপাস চান তবে আপনাকে / del . /F /Q
এফকিউ

40
এটি কেবল ফাইলগুলি সরিয়ে দেয় - ফোল্ডারগুলি নয়
icc97

52
এটি সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত নয় কারণ এটি ফোল্ডারগুলি মুছে না (প্রশ্নে বর্ণিত হিসাবে)।
বিল_সেটওয়ার্ট

158

ব্যবহার করুন:

  • একটি ব্যাচের ফাইল তৈরি করুন

  • নীচের পাঠ্যটি ব্যাচ ফাইলে অনুলিপি করুন

    set folder="C:\test"
    cd /d %folder%
    for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
    

এটি সমস্ত ফাইল এবং ফোল্ডার মুছে ফেলবে ।


4
দুর্দান্ত, আমি একটি মাসিক ব্যাচের কাজের জন্য ফাইল এবং ফোল্ডারগুলি পরিষ্কার করার জন্য কিছু সন্ধান করছিলাম এবং এটি কৌশলটি সফল হয়েছিল।
ডেভ হার্ডিং

9
আপনি এটি করার আগে ডিরেক্টরিটি বিদ্যমান রয়েছে তা নিশ্চিত করুন।
বিল_সেটওয়ার্ট

2
আপনার ফাইলের chcp 10000
নামগুলিতে

3
কেবল বিল_স্টয়ার্টের মন্তব্যে একটি নোট যুক্ত করতে চাই। ডিরেক্টরিটি বিদ্যমান রয়েছে তা আপনি নিশ্চিত করার কারণটি অন্যথায়, আপনি বর্তমানে যে ডিরেক্টরিতে রয়েছেন তা তা পরিষ্কার হয়ে যাবে my আমার ক্ষেত্রে, এটি 30 মিনিটেরও বেশি সময় ধরে আমি ব্যাচ ফাইলটিতে কাজ করে যাচ্ছিলাম। :( ভাল জিনিস বাকী ফোল্ডারটি উত্স নিয়ন্ত্রণে ছিল
helios456

2
@ (rmdir "%%i" /s/q 2>NUL || del "%%i" /s/q >NUL ) আমরা ত্রুটি এবং মোছার বার্তা দমন করতে লুপটি পরিবর্তন করি
কার্ল ওয়ালশ

34
IF EXIST "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" (
    rmdir "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" /s /q
)

এটি ফোল্ডার (এবং ফোল্ডার নিজেই) থেকে সমস্ত কিছু মুছবে।


13
আমি মনে করি প্রশ্নটি সমস্ত সামগ্রীর ডিরেক্টরি খালি করার বিষয়ে, তবে ডিরেক্টরিটি নিজেই মোছা নয়।
বিল_সেটওয়ার্ট

16

del *.*কেবল ফাইলগুলি মুছবে, তবে উপ-ডিরেক্টরিগুলি নয়। ডিরেক্টরিতে থাকা বিষয়বস্তুগুলিকে বোঝাতে আপনি এই স্ক্রিপ্টটি ব্যবহার করতে পারেন:

@echo off
setlocal enableextensions
if {%1}=={} goto :HELP
if {%1}=={/?} goto :HELP
goto :START

:HELP
echo Usage: %~n0 directory-name
echo.
echo Empties the contents of the specified directory,
echo WITHOUT CONFIRMATION. USE EXTREME CAUTION!
goto :DONE

:START
pushd %1 || goto :DONE
rd /q /s . 2> NUL
popd

:DONE
endlocal

pushdআপনি যে ডিরেক্টরিতে বাচ্চাদের মুছতে চান তাতে পরিবর্তন The তারপরে যখন rdবর্তমান ডিরেক্টরি এবং সমস্ত উপ ডিরেক্টরি মুছে ফেলার জন্য জিজ্ঞাসা করা হয় তখন উপ ডিরেক্টরিগুলি মুছতে সফল হয় তবে বর্তমান ডিরেক্টরি মুছে ফেলা ব্যর্থ হয় - কারণ আমরা এতে আছি। এটি একটি ত্রুটি তৈরি করে যা 2> NULগ্রাস করে। (2 ত্রুটি প্রবাহ হ'ল)


6
আমি কীভাবে এটি সামান্য সময়ের জন্য কাজ করেছি তা নিয়ে বিস্মিত হয়েছি, তাই অন্যের ব্যাখ্যা হিসাবে: আপনি যে ডিরেক্টরিটি বাচ্চাদের মুছতে চান তাতে সেই চাপ বদলে যায়। তারপরে যখন আরডি বর্তমান ডিরেক্টরি এবং সমস্ত উপ ডিরেক্টরি মুছে ফেলতে বলে, সাব ডিরেক্টরিগুলি মুছতে সফল হয় তবে বর্তমান ডিরেক্টরি মুছে ফেলা ব্যর্থ হয় - কারণ আমরা এতে আছি। এটি একটি ত্রুটি তৈরি করে যা 2> NUL গ্রাস করে। (2 ত্রুটি প্রবাহ হ'ল) মিঃ স্টুয়ার্ট খুব ধূর্ত!
गतिগত

ওহ, এবং "সেটলোকাল এন্টেবল এক্সটেনশানস" একই সাথে বর্তমান ডিরেক্টরিটিকে স্ট্যাকের উপরে চাপ দেওয়ার এবং ডিরেক্টরি পরিবর্তন করার ক্ষমতা চালু করে। এটি কেবল পূর্ব এক্সপি হিসাবে প্রয়োজনীয় বলে মনে হয়, কারণ সেখানে এবং পরে এটি অনে ডিফল্ট হয়।
गतिগত

আপনি কি মন্তব্যগুলি থেকে উত্তরের উত্তরগুলিতে সংহত করতে পারবেন (মন্তব্যগুলি কোনও মুহুর্তে অদৃশ্য হয়ে যেতে পারে)? ( "সম্পাদনা:" "আপডেট:" লেবেলগুলি ব্যবহার না
পিটার মর্টেনসেন

12

আমি কেবল মর্টি 346 পোস্ট করা থেকে এটি একসাথে রেখেছি:

set folder="C:\test"
IF EXIST "%folder%" (
    cd /d %folder%
    for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
)

এটি একটি দ্রুত চেক যুক্ত করে যে ভেরিয়েবলের মধ্যে সংজ্ঞায়িত ফোল্ডারটি আগে উপস্থিত থাকে, ফোল্ডারে ডিরেক্টরি পরিবর্তন করে এবং সামগ্রীগুলি মুছে দেয়।


2
সুতরাং, দ্রুত টিপস - যদি আপনি এটি "আইএফ উপস্থিত" বিবৃতি দিয়েও কোনও নেটওয়ার্কের পথে চালানোর চেষ্টা করেন তবে এটি ফোল্ডারটি সেট করতে ব্যর্থ হবে এবং একটি বিবৃতিটি সিএমডি প্রম্পটে রেকর্ড করা হবে "ইউএনসি পাথগুলি সমর্থন করছে না, ডিফল্ট হবে উইন্ডোজ ডিরেক্টরি "তারপরে এটি আপনার উইন্ডোজ ডিরেক্টরিতে থাকা সমস্ত কিছু মুছতে চেষ্টা করবে। তাই সতর্কতা অবলম্বন করা.
সিবিআরএফ 23

11

আপনি delএটি এবং /Sপতাকা ব্যবহার করে এটি করতে পারেন (সমস্ত উপ-ডিরেক্টরি থেকে সমস্ত ফাইল পুনরুদ্ধার করতে এটি বলার জন্য):

del /S C:\Path\to\directory\*

দ্য আরডি কমান্ড এছাড়াও ব্যবহার করা যাবে। প্রম্পট ছাড়াই পুনরাবৃত্তভাবে নিঃশব্দে মুছুন:

@RD /S /Q %VAR_PATH%

আরএমডির (আরডি)



3

নিম্নলিখিত চেষ্টা করুন; এটা আমার জন্য কাজ করে.

আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে যা আমার "সি: \ tmp" ফোল্ডারে ডেটা ফেলে দেয় এবং নিম্নলিখিতগুলি আমার পক্ষে সবচেয়ে ভাল কাজ করে। এমনকি ডেটা মুছতে হ্যাঁ বা না জিজ্ঞাসা করে না । আমি প্রতি 5 মিনিটের পরে এটি চালানোর জন্য একটি সময়সূচি তৈরি করেছি

cd "C:\tmp"

del *.* /Q

7
যদি "C: \ tmp" ফোল্ডারটি উপস্থিত না থাকে (আপনি বা অন্য কোনও অ্যাপ্লিকেশন যদি সেই ফোল্ডারটি মুছে ফেলেছে) এবং আপনি যদি এটি চালনার চেষ্টা করেন তবে এটি "সি: \" এর ভিতরে থাকা অন্য ফোল্ডার থেকে ডেটা মুছে ফেলবে না? (এটা আমার সাথে হয়েছিল)
বিক্রম

4
যেমনটি বিক্রম নোট করেছেন: 1) এটি খুব বিপজ্জনক, এবং 2) এটি প্রশ্নে বর্ণিত সাব ডাইরেক্টরিগুলি সরিয়ে দেয় না।
বিল_স্টয়ার্ট

2
ফোল্ডার জিনিস ছাড়াও ... আপনি ঠিক করতে পারেন del /q c:\tmp\*.*যা প্রায় মিলিয়ন গুণ বেশি নিরাপদ। উল্লেখ না করা cdকেবল পথ পরিবর্তন করবে, গাড়ি চালাবে না।
নাইয়ারগডস

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

2

আরও ভাল, এর জন্য আমি বলি যে আমি C:\windows\tempফোল্ডারের নীচে সমস্ত কিছু মুছতে চাই ।

@echo off
rd C:\windows\temp /s /q

11
এটি ডিরেক্টরিটি সরিয়ে দেয় c:\windows\temp। আমি মনে করি না যে এটি আসল প্রশ্নটিই জিজ্ঞাসা করেছিল।
বিল_সেটওয়ার্ট

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

1
দুঃখের সাথে, ব্যাচের স্ক্রিপ্ট থেকে মুছুন এবং তাত্ক্ষণিকভাবে পুনরায় তৈরি করা উইন 10 এ এলোমেলো "অ্যাক্সেস প্রত্যাখ্যান" ত্রুটি বলে মনে হচ্ছে ...
নায়ারগডস

2

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

robocopy "C:\temp\empty" "C:\temp\target" /E /MIR

আপনি প্রকৃত ফোল্ডারটি সরাতে বা পুনরায় তৈরি করতে না পারলে এটিও কাজ করে।

এটির জন্য একটি বিদ্যমান খালি ডিরেক্টরি প্রয়োজন।


1
রোবোকপির সাহায্যে, /MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).- সুতরাং আমি নিশ্চিত যে /Eএটি অপ্রয়োজনীয়।
নায়ারগডস

2

ব্যবহার

set dir="Your Folder Path Here"
rmdir /s %dir%
mkdir %dir%

এই সংস্করণটি জিজ্ঞাসা না করে মোছা:

set dir="Your Folder Here"
rmdir /s /q %dir%
mkdir %dir%

উদাহরণ:

set dir="C:\foo1\foo\foo\foo3"
rmdir /s /q %dir%
mkdir %dir%

এটি পরিষ্কার হবে C:\foo1\foo\foo\foo3

(আমি আবদুল্লাহ সাবউইনের জবাবটি উল্লেখ করতে চাই । তাঁর কপি করার বিষয়ে আমার মধ্যে একটি মিশ্রণ ছিল। আমি তার পোস্টটি লক্ষ্য করিনি। ত্রুটিগুলি দেখানোর জন্য আমি আপনাকে মেলপোমেনিকে ধন্যবাদ জানাতে চাই !)


এটি মোটেই কাজ করে না। খালি ডিরেক্টরি না rmdir fooহলে ত্রুটিগুলি আউট foo
melpomene

@ মেলপোমেনে আমি ত্রুটিটি পেয়েছি এবং এটি ঠিক করা উচিত !!
ট্র্যাভিডুড মাইনক্রাফ্ট এবং

1
আমি কোনওভাবেই @ আব্দুল্লাহ সাবৌনিকে অনুলিপি করতে চাইছি না। আমি অবশ্যই এটি লক্ষ্য করা উচিত নয়। আমি দুঃখিত.
ট্র্যাভিডুড মাইনক্রাফ্ট এবং আরও

@ মেলপোমেন আমি আমার ত্রুটি এবং ঘটনার বিষয়ে আমার দৃষ্টিভঙ্গি জানিয়েছি। তবে আমি সিদ্ধান্ত নিয়েছি যে এটি যেভাবেই সহায়তা করে তবে মুছে ফেলবেন না। যে ইশারা জন্য ধন্যবাদ।
ট্র্যাভিডুড মাইনক্রাফ্ট এবং আরও

@ ট্র্যাভিডুডমিনিক্রাফ্ট এবং আরও +1 - আমার পক্ষেও কাজ করেছে।
গাই অভ্রাহাম

0

আপনি একা rmdirবা delএকাই দিয়ে সবকিছু মুছতে পারবেন না :

  • rmdir /s /qওয়াইল্ডকার্ড প্যারাম গ্রহণ করে না। সুতরাং rmdir /s /q *ত্রুটি হবে।
  • del /s /f /q সমস্ত ফাইল মুছে ফেলবে, তবে খালি সাব ডিরেক্টরিগুলি থাকবে।

আমার পছন্দসই সমাধান (যেমন আমি অন্যান্য অনেক ব্যাচের ফাইলগুলিতে ব্যবহার করেছি):

rmdir /s /q . 2>NUL

0

গ্রেগমের উত্তরের একটি পরিবর্তিত সংস্করণ :

set folder="C:\test"
cd /D %folder%
if NOT %errorlevel% == 0 (exit /b 1)
echo Entire content of %cd% will be deleted. Press Ctrl-C to abort
pause

REM First the directories /ad option of dir
for /F "delims=" %%i in ('dir /b /ad') do (echo rmdir "%%i" /s/q)

REM Now the files /a-d option of dir
for /F "delims=" %%i in ('dir /b /a-d') do (echo del "%%i" /q)

REM To deactivate simulation mode remove the word 'echo' before 'rmdir' and 'del'.

-1
@echo off
@color 0A

echo Deleting logs

rmdir /S/Q c:\log\

ping 1.1.1.1 -n 5 -w 1000 > nul

echo Adding log folder back

md c:\log\

আপনি সঠিক পথে ছিল। আবার মুছে ফেলা ফোল্ডারটি যুক্ত করার জন্য কেবল কোড যুক্ত করুন।


1
আমি এই সমাধানটির প্রস্তাব দিচ্ছি না কারণ এটি ডিরেক্টরিটি সরিয়ে দেয় (এভাবে এর অনুমতিগুলি হারাতে পারে) এবং এটি পুনরায় তৈরি করে (সম্ভবত বিভিন্ন অনুমতি সহ)।
বিল_সেটওয়ার্ট

-3

সমস্ত ফাইল মুছে ফেলার জন্য আপনার এই আদেশটি চালানো উচিত:

del*.*

6
২১ শে জুলাই '11 এ 21:04 এ গৃহীত উত্তর হিসাবে একই। আপনার কাছে নতুন কিছু না থাকলে দয়া করে কোনও উত্তর যুক্ত করবেন না।
স্টিফান

2
@ স্টিফেনের বৈধ সমালোচনা ছাড়াও কমান্ডটি del *.*(একটি স্থান সহ) হওয়া দরকার
টাই হিটজেম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.