কমান্ড প্রম্পটের মাধ্যমে প্রদত্ত ফোল্ডারে থাকা সমস্ত ফাইল / সাবফোল্ডারগুলি কীভাবে মুছতে পারি?


42

আমি উইন্ডোজ in এর একটি ব্যাচ ফাইলে সমস্ত ফাইল এবং সাবফোল্ডারগুলি মুছতে এবং শীর্ষ ফোল্ডারটি রাখতে চাই। মূলত ফোল্ডারটি খালি করা হচ্ছে। কমান্ড লাইন নির্দেশ কি তার জন্য?


3
নিতপিক নয়, তবে আপনি কীভাবে "ডস" থেকে নয় "কমান্ড প্রম্পট থেকে" এটি করবেন তা সন্ধান করছেন। উইন এমই থেকে কোনও ডস সাবসিস্টেম নেই।
MDMarra

@ মার্কএম: ঠিক আছে, আছে / ছিল ntvdmকিন্তু 64৪ -বিট সিস্টেমের বাজারের শেয়ার হিসাবে এটি ক্রমবর্ধমান অপ্রাসঙ্গিক হয়ে উঠছে।
জোয়

এছাড়াও দেখুন
স্ট্যাকওভারফ্লো.

উত্তর:


55

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

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

2
আপনার আরও ভাল: ডি +1 - আমার উত্তর মোছা হয়েছে
ব্লাডফিলিয়া

3
ব্যাখ্যা: ডেল মানে ডিলিট এবং এস এর অর্থ পুনরাবৃত্তি।
তামারা উইজসম্যান

3
টনি_হেনরিচ, এখানে এমএসডোস কমান্ড সম্পর্কে আরও জানুন। computerhope.com/msdos.htm
মোয়াব

3
এবং / কিউ খালি সাব ফোল্ডারগুলি রাখে যা অনাকাঙ্ক্ষিত।
টনি_হেনরিচ

3
এটি ভুল উত্তর এবং কেন জানি এটি অনেক বেশি ভোট পেয়েছিল। দেখে মনে হচ্ছে লোকেরা প্রশ্নটি পুরোপুরি বুঝতে পারেনি এবং মন্তব্যগুলি পড়ে না! আমি উত্তরগুলি দিয়ে যাব এবং সঠিকটি নির্বাচন করব।
টনি_হেনরিচ

22

সর্বোত্তম সমাধান: উদাহরণস্বরূপ আমি সমস্ত ফাইল এবং পিতামাতার ডিরেক্টরিগুলির সাব-ডিরেক্টরি মুছতে চাই "C: \ ব্যবহারকারীদের ডেস্কটপ \ নতুন ফোল্ডার \" বলতে দিন। সহজ উপায় হ'ল নীচের তিনটি কমান্ডের ব্যাচ ফাইল তৈরি করা।

সিডি সি: \ ব্যবহারকারীগণ ডেস্কটপ \ নতুন ফোল্ডার \

ডেল * / এস / কিউ

rmdir / S / Q "C: \ ব্যবহারকারীরা \ ডেস্কটপ \ নতুন ফোল্ডার \"

এখানে প্রথমে এটি সমস্ত উপ-ডিরেক্টরিতে সমস্ত ফাইল পরিষ্কার করবে এবং তারপরে সমস্ত খালি সাব ডিরেক্টরিগুলি পরিষ্কার করবে। যেহেতু বর্তমানের কর্মনির্দেশক ডিরেক্টরিটি মূল ডিরেক্টরি অর্থাৎ "\ নতুন ফোল্ডার", তাই rmdir কমান্ড এই ডিরেক্টরিটি নিজেই মুছতে পারে না।


1
সিস্টেম যখন রুট ফোল্ডারটি মুছতে পারে না তখন একটি সতর্কতা ছাড়া খুব ভাল কাজ করে।
জেরের

2
ভাল না. হার্ড কোডেড পাথ এবং এটি দেখে এটি ফোল্ডারটি খালি করে না। এটি এটি সরিয়ে দেয়। খুব বিপজ্জনক। যদি পথটি প্রস্থান না হয় বা ভুলভাবে বানানো না হয় তবে এটি বর্তমান ফোল্ডারে ফাইল মুছে দেয়।
টনি_হেনরিচ

1
যেমন টনি_হেনরিচ বলেছেন যে rmdirকমান্ডটি মুছে ফেলা হবেNew folder
নুক্টু

না। এটি প্রকৃতপক্ষে ফোল্ডারটি মোছা ছাড়াই "নতুন ফোল্ডার" সম্পূর্ণরূপে সাফ করার কাজ করে। একমাত্র সমস্যা হ'ল ওএস যখন প্যারেন্ট ফোল্ডারটি মুছতে ব্যর্থ হয় তখন এটি একটি সামান্য সতর্কতা দেয়। এছাড়াও, আপনার কাছে যদি কোনও বৃহত ফোল্ডার না থাকে তবে ডেল কমান্ডটি অতিরিক্ত কাজ নয়, এক্ষেত্রে এটি আরও দ্রুত হতে পারে। আপনি কেবল এটির মতো পরিবর্তন করতে পারেন (মন্তব্যগুলিতে লাইন ব্রেকের অভাবের জন্য দুঃখিত): সেট করুন FOLDER = "% ব্যবহারকারী প্রোফাইলে% \ ডেস্কটপ \ নতুন ফোল্ডার" সিডি% ফোল্ডার% rmdir / এস / কিউ% ফোল্ডার% \> নুল 2> & 1
HSuke

3
বাস্তব বিপজ্জনক যদি কেউ এগিয়ে যায় এবং `সি: \ ব্যবহারকারী \ ডেস্কটপ \ নতুন ফোল্ডার remove সরিয়ে দেয়, সিডি সহ প্রথম লাইনটি ব্যর্থ হয় এবং আপনার ব্যাচ ফাইল আনন্দের সাথে বর্তমান (ডিফল্ট) ডিরেক্টরিতে সমস্ত কিছু মুছে দেয়। যা আপনার কাজের ডিরেক্টরি বা সি: C উইন্ডোজ \ সিস্টেম
32

9

মূল ডিরেক্টরিতে নেভিগেট করুন:

pushd "Parent Directory"

সাব ফোল্ডারগুলি মুছুন:

rd /s /q . 2>nul

1
বাহ, এটা হ্যাকিশ। :)
তার্নে কলমেন

1
এটি মূলত পূর্ববর্তী দুটি উত্তরের সমতুল্য।
স্কট

উপরের সাথে একমত - এটি পূর্ববর্তী উত্তরগুলির একটি অনুলিপি, প্রতিস্থাপনকারীদের সমার্থক কমান্ডগুলির সাথে প্রতিস্থাপিত। pushdএখানে এমন কিছু যুক্ত করে না যা cdইতিমধ্যে করছে না।
হাশিম

এটিই কেবলমাত্র আমি এখন পর্যন্ত ব্যবহার করতে সক্ষম হয়েছি যা প্রশ্নকারী যা জিজ্ঞাসা করছে তার জন্য ঠিক কাজ করেছিল, অন্য সমস্তগুলি কেবল সমস্ত ফাইল মুছে ফেলে। অবশ্যই এতে rmdir /s path-to-folderথাকা সমস্ত স্টাফ সহ ফোল্ডারটি মুছে ফেলবে, তবে প্রশ্নকর্তা কীভাবে ওয়ার্কিং ডিরেক্টরিতে সমস্ত কিছু মুছবেন তা জানতে চেয়েছিলেন।
কাটজ_ক্যাটজ_ক্যাটজ

এই উত্তরটি আমার পক্ষে সবচেয়ে ভাল কাজ করেছে। অন্যান্য সমস্ত উত্তরের সাথে এটি / কিউ ব্যবহার করার সময় অ-খালি ডিরেক্টরিগুলি মুছে দেয় না এবং / কিউ ব্যবহার না করার সময় এটি সর্বদা নিশ্চিতকরণের জন্য বলেছিল।
marijnr

5
rmdir "c:\pathofyourdirectory" /q /s

উদ্ধৃতি ব্যবহার করতে ভুলবেন না এবং এর জন্য /q /sএটি সমস্ত সংগ্রহস্থল এবং বিনা অনুরোধে মুছে ফেলবে।


2
প্রশ্নটি ছিল "আমি উইন্ডোজ in এর একটি ব্যাচের ফাইলের সমস্ত ফাইল এবং সাবফোল্ডারগুলি মুছতে এবং শীর্ষ ফোল্ডারটি রাখতে চাই " "
ওয়ার্নার হেনজে

5

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

rmdir /s/q MyFolderPath

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

del /f/s/q MyFolderPath > nul
rmdir /s/q MyFolderPath

প্রথম বিকল্পটি একটি ত্রুটি দেয় "ডিরেক্টরিটি খালি নয়"। দ্বিতীয় বিকল্পের প্রথম কমান্ড, পুরো ফোল্ডারটি মুছে দেয়। এটি আমার পছন্দ মতো রাখে না। প্রথম কমান্ডটি পুরো ফোল্ডারটি মুছে ফেললে দ্বিতীয় কমান্ডের প্রয়োজন হবে না।
টনি_হেনরিচ

rmdirকমান্ড (উভয় একই) উর্ধ্বস্থ ফোল্ডারে মুছে ফেলবে। এটি প্রশ্নের উত্তর নয় । লোকেরা কেন পড়েন না?
হাশিম

3

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

@echo off

REM Checking for command line parameter
if "%~1"=="" (

    echo Parameter required.
    exit /b 1

) else (

    REM Change directory and keep track of the previous one
    pushd "%~1"

    if errorlevel 1 (

        REM The directory passed from command line is not valid, stop here.
        exit /b %errorlevel%

    ) else (

        REM First we delete all files, including the ones in the subdirs, without confirmation
        del * /S /Q

        REM Then we delete all the empty subdirs that were left behind
        for /f %%D IN ('dir /b /s /a:d "%~1"') DO rmdir /S /Q "%%D"

        REM Change directory back to the previous one
        popd

        REM All good.
        exit /b 0
    )

)

এবং তারপরে আপনি কেবল এটিকে কল করবেন:

empty_my_folder.bat "C:\whatever\is\my folder"

3

আপনার ব্যাট ফাইলে এই তিনটি নির্দেশাবলী রেখে আপনি এটি দ্রুত এবং সহজেই করতে পারেন:

mkdir empty_folder
robocopy /mir empty_folder "path_to_directory"
rmdir empty_folder

এটি অত্যন্ত কার্যকর কারণ এটি কোনও লুকানো বা সিস্টেম ফাইলগুলিও সরিয়ে দেয়।
খ প্রকাশ

1

ফোল্ডারের নামগুলিতে আমার ফাঁকা স্থান থাকলে এটি আমার পক্ষে আরও ভাল কাজ করে।

@echo off
REM ---- Batch file to clean out a folder
REM Checking for command line parameter
if "%~1"=="" (

echo Parameter required.
exit /b 1

) else (
echo ***********************************************************************************
    echo *** Deleting all files, including the ones in the subdirs, without confirmation *** 
    del "%~1\*" /S /Q
echo ***********************************************************************************
    REM Deleting all the empty subdirs that were left behind
FOR /R "%~1" %%D IN (.) DO (
    if "%%D"=="%~1\."  (
    echo *** Cleaning out folder: %~1 *** 
    ) else (
    echo Removed folder "%%D"
    rmdir /S /Q "%%D"
    )
) 

    REM All good.
    exit /b 0

)

লোকেরা সর্বদা নামের ফাঁকা থাকার কথা ভুলে যায়।
কেভিন পানকো

1

ফাইল মুছতে:

del PATH_TO_FILE

এতে সমস্ত ফাইল সহ ফোল্ডার মুছতে:

rmdir /s /q PATH_TO_FOLDER

নির্দিষ্ট ফোল্ডার থেকে সমস্ত ফাইল মুছতে (ফোল্ডারটি নিজেই মোছা নয়) কিছুটা জটিল। del /s *.*ফোল্ডারগুলি মুছতে পারে না, তবে সমস্ত সাবফোল্ডার থেকে ফাইলগুলি সরিয়ে দেয়। সুতরাং দুটি কমান্ডের প্রয়োজন:

del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"

আপনি যা চান (ফোল্ডার বা ফাইল) এর মতো মুছতে একটি স্ক্রিপ্ট তৈরি করতে পারেন mydel.bat:

@echo off
setlocal enableextensions

if "%~1"=="" (
    echo Usage: %0 path
    exit /b 1
)

:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1

:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%

ব্যবহারের কয়েকটি উদাহরণ:

mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder

0

এটিই আমার পক্ষে কাজ করেছিল।

  1. আপনি যে ফোল্ডারটি ফাইল মুছতে চান তার ভিতরে নেভিগেট করুন।
  2. টাইপ করুন: del *
  3. Y হ্যাঁ
  4. সম্পন্ন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.