কমান্ড লাইন ব্যবহার করে উইন্ডোজের কোনও ফোল্ডার পুরোপুরি মুছুন


57

আমার ভিতরে অন্য ফোল্ডার এবং ফাইলযুক্ত একটি ফোল্ডার মুছতে হবে। আমি চেষ্টা করেছি delএবং rmdirআদেশ দিয়েছি তবে কখনও কখনও তারা কিছু ত্রুটিযুক্ত লাইনে ব্যর্থ হয়:[PATH]: The directory isn't empty.

কোন ভাল বিকল্প আছে?


আমি সঠিক পতাকাযুক্ত rmdir ডিরেক্টরি ট্রি (এবং / অথবা গাছ নিজেই) থেকে সমস্ত কিছু সরিয়ে ফেলেছি এবং হ্যারি জনস্টন যা বলেছিলেন তার একমাত্র সম্ভাব্য ব্যাখ্যা আমি এতে অসঙ্গতি পেয়েছি।
r_alex_hall

উত্তর:


15

আমার স্বয়ংক্রিয় বিল্ড স্ক্রিপ্টগুলির সাথে এটি আমার কাছে অনেক কিছু ঘটে।

আমার ধারণা কারণটি এমন কিছু অ্যাপ্লিকেশন হতে পারে যা "শেয়ার মুছুন" দিয়ে সেই ডিরেক্টরিতে একটি ফাইল খোলা আছে open অর্থাত অ্যাপ্লিকেশনটি ফাইলটি মুছে ফেলার অনুমতি দেয় (যার কারণেই আমি ডিলিটফিল কলটি ব্যর্থ হয় না), তবে অ্যাপ্লিকেশনটির হ্যান্ডেলটি বন্ধ হয়ে যাওয়ার পরে ফাইলটি কেবল অদৃশ্য হয়ে যাবে।

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

কমপক্ষে এটি আমার তত্ত্ব।

হ্যারি জনস্টনের প্রস্তাবিত কর্মচালনাটি দেখতে দুর্দান্ত দেখাচ্ছে। rmdirকমান্ডগুলির মধ্যে আমি কেবল একটি বিরতি would োকাতাম। অবশ্যই উইন্ডোজের কোনও সহজেই স্ক্রিপ্টযোগ্য "বিরতি" কমান্ড নেই (সংশোধন: প্রাচীন উইন্ডোজ সংস্করণগুলি নেই, আরও নতুন রয়েছে - মন্তব্য দেখুন)। তবে কয়েক সেকেন্ডের গ্রানুলারিটি যদি pingকোনও বিরতি তৈরি করতে ব্যবহার করতে পারে তবে:

ping -n {desired_delay_in_seconds + 1} 127.0.0.1 >nul

সুতরাং মোট:

rd /s /q foo
:: retry once
if exist foo (
    :: clear errorlevel
    cmd /c
    :: pause
    ping -n 2 127.0.0.1 >nul
    :: retry
    rd /s /q foo
)
:: retry yet again
if exist foo (
    cmd /c
    ping -n 2 127.0.0.1 >nul
    rd /s /q foo
)
:: give up
if exist foo {panic}

আমার অভিজ্ঞতায় কোনও বিরতি কখনও প্রয়োজন হয় না, তবে ওয়াইএমএমভি। (অবশ্যই খেলতে যদি অন্য কোনও অ্যাপ্লিকেশন থাকে তবে এটি সনাক্ত করা ভাল এবং সম্ভবত সম্ভব হলে এটি প্রস্থান করার জন্য অপেক্ষা করা ভাল))
হ্যারি জনস্টন

ভাল ... আমি প্রতি চেষ্টা করে এক সেকেন্ড দেরি করে 10x পুনরায় চেষ্টা-লুপ প্রয়োগ করেছি। এখন কাজ করে। আমি বিরতি অপসারণের চেষ্টা করতে যাচ্ছি না, কেবল এটি আবার ব্যর্থ হয়েছে তা দেখতে :-) অবশ্যই এর অর্থ এটি প্রয়োজনীয় নয়। শুধু অতিরিক্ত সতর্ক হওয়া।
পল গ্রোক

2
ওটি: এই কারণেই আমি উইন্ডোজকে ঘৃণা করি। সবকিছু এত শক্ত। rm -rf /directory/সমস্ত অপারেটিং সিস্টেমে গ্লোবাল হওয়া উচিত।

2
প্রকৃতপক্ষে একটি "বিরতি" আদেশ রয়েছে; তিন সেকেন্ড বিরতি দেওয়ার জন্য আপনি এটি ব্যবহার করতে পারেন:timeout /t 3
r_alex_hall

@r_alex_hall আসলে (তবে স্থানীয়ভাবে কেবল ভিস্তা থেকে, এক্সপি এবং এর আগে pauseকমান্ড নেই)।
misha256

57

চেষ্টা করুন:

rmdir /S your_directory

বা:

rmdir /S /Q your_directory 

নিশ্চিতকরণ বার্তা এড়ানো।


1
আমি ইতিমধ্যে এই বিকল্পগুলি চেষ্টা করেছিলাম কিন্তু আমি যেমন লিখেছি delএবং rmdirকিছুই জিজ্ঞাসা করি না, তারা কেবল বর্ণনার মতো কিছু লাইন প্রেরণ করে।
ফ্রান্সেস্কো জানিনি

2
rmdir /sমুছতে পারে এমন যে কোনও কিছুই মুছে ফেলবে। আপনার কাছে এমন ফাইল থাকতে পারে যা কোনও প্রোগ্রাম দ্বারা লক করা আছে, কেবল পঠনযোগ্য ফাইল বা ফাইলগুলি যা মুছতে আপনার প্রশাসনিক অ্যাক্সেস প্রয়োজন। সেখানে একটি কমান্ডের যে আপনার জন্য ঐ সমস্ত পরিস্থিতিতে যত্ন নিতে হবে নয়
nvuono

আপনি যদি এখনও ত্রুটি বার্তা পেয়ে থাকেন তবে পাওয়ারশেলের সাথে চেষ্টা করুন: সেমিডলেট সরান-আইটেম এটি আরএমডিরের চেয়ে কিছুটা শক্তিশালী।
অ্যান্ড্রুউকি

1
rmdir / S <ডিরেক্টরি>> ডিরেক্টরি এবং subfolers এবং ডিরেক্টরি মুছে ফেলা হচ্ছে। এটি জিজ্ঞাসা করে আপনি কি নিশ্চিত? উইন্ডোজ ১০-এ ধন্যবাদ
জস্মিত

1
@r_alex_hall আরএমডিআইআর / প্রকৃতপক্ষে ডিরেক্টরিগুলিতে ফাইলগুলি মুছে দেয়। তবে ডিল / গুলি কেবল ফাইলগুলি মুছে ফেলবে এবং ডিরেক্টরিগুলি রক্ষণাবেক্ষণ করবে, এ কারণেই আরএমডিআইআর সবচেয়ে ভাল বিকল্প
JCH2k

11

আপনার কাছে কিছু পঠনযোগ্য ফাইল থাকতে পারে, আপনি এগুলি ব্যবহার করে পরিত্রাণের জন্য ডেল / এফ বিকল্পটি ব্যবহার করতে পারেন

     del /S /F your_directory
     rmdir your_directory

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

     del /S /F /AH your_directory
     rmdir your_directory

যদি এটি এখনও ব্যর্থ হয়, তবে হয় আপনার কাছে কিছু ফাইল মুছার অনুমতি নেই, বা কিছু ফাইল এখনও ব্যবহারের মধ্যে রয়েছে।


এটি সঠিক উত্তর হওয়া উচিত!
jdhao

4

আমি বিশ্বাস করি উইন্ডোজ in (এবং সম্ভবত অন্যান্য সংস্করণগুলিতে) একটি বাগ রয়েছে যা কখনও কখনও এই লক্ষণটির কারণ হয়; অথবা এটি তৃতীয় পক্ষের সফ্টওয়্যারটিতে একটি বাগ হতে পারে। (আপনি কি কোনও সুযোগেই সিম্যানটেক এন্ডপয়েন্ট প্রোটেকশন ইনস্টল করেছেন?)

যাইহোক, আমি প্রায় প্রায়শই এটি চালিয়েছি। বেশিরভাগ ক্ষেত্রে, টানা rd /s /qদু'বার তিনবার চালিয়ে সমস্যাটি প্রায়শই কাজ করা যায় ।

এটি যদি কোনও ব্যাচের ফাইলে থাকে তবে আপনি এই জাতীয় কিছু করতে পারেন:

rd /s /q foo
if exist foo rd /s /q foo
if exist foo rd /s /q foo
if exist foo echo Help! & pause

একমত। Rd / s foo ব্যবহার করা - এটি / q সাইলেন্ট বিকল্প ছাড়া - আপনার জন্য সমস্ত সাব ফোল্ডার মুছে ফেলবে, তবে আপনাকে প্রম্পটে ওয়াইয়ের উত্তর দিতে হবে, সুতরাং ব্যাচের ফাইলগুলিতে উপস্থিত হওয়া প্রয়োজন। আদর্শের চেয়ে কম আমি জানি।
অ্যান্টনি

3

delভিতরে থাকা ফাইলগুলিতে ব্যবহার করুন, তারপরে rmdirফোল্ডারটি সরাতে।

rmdirসমস্ত ফাইলও মুছে ফেলার পদ্ধতিটি ব্যবহার করতে , ডিরেক্টরি নামের আগে/S স্যুইচটি ব্যবহার করুন , এবং মোছার জন্য অনুরোধটি দমন করতে। এটি করার সর্বোত্তম উপায়, কারণ আপনি কোনও ফাইলই মিস করেন না। / কিউ সুইচটি ব্যবহার করে সতর্ক থাকুন, কারণ এটি আপনাকে সিস্টেম বা লুকানো ফাইলের বৈশিষ্ট্য সম্পর্কে সতর্ক করবে না/Q


2

আপনি যদি নোড ব্যবহার করেন তবে আপনি রিমরাফ নির্ভরতা ব্যবহার করতে পারেন :

রান ইনস্টল: npm install rimraf -g

ফোল্ডার মুছুন: rimraf SourceFolder

ত্রুটি পাওয়ার সময় এটি আমাকে সহায়তা করেছিল:

উত্স ফাইলের নামগুলি ফাইল সিস্টেম দ্বারা সমর্থিত চেয়ে বড়


0

উইন্ডোজ (ডস, উইন্ডোজ 95/98 / আমার) এর পুরোনো সংস্করণগুলি ফোল্ডার DELTREEসমতূল্য RMবা RMDIR। আমি DELTREEআমার উইন্ডোজ 7 ওয়ার্কস্টেশনটি ব্যাচ ফাইলে ব্যবহার করি ঠিক ঠিক।

Deletes a directory and all the subdirectories and files in it.

To delete one or more files and directories:
DELTREE [/Y] [drive:]path [[drive:]path[...]]

  /Y              Suppresses prompting to confirm you want to delete
                  the subdirectory.
  [drive:]path    Specifies the name of the directory you want to delete.

Note: Use DELTREE cautiously. Every file and subdirectory within the
specified directory will be deleted.

0

আমি মনে করি আপনি এটি এটি ব্যবহার করতে পারেন:

msg*your file is going to delete 
pause
del/s /q "C:\Users\Rd\Desktop\New folder (2)\" 
rmdir /s /q "C:\Users\Rd\Desktop\New folder (2)\"
mkdir "C:\Users\Rd\Desktop\New folder (2)"

1
এসইউতে আপনাকে স্বাগতম! আমি কেন হতাশ? 1) দুর্বল ফর্ম্যাটিং 2) একই রকম প্রয়োজনীয় সমাধান সরবরাহ করে যা ইতিমধ্যে বেশ কয়েক বছর আগে পোস্ট করা হয়েছিল (সর্বদা একটি নতুন পোস্ট করার আগে পোস্ট করা সমাধানগুলি পড়ুন!) 3) প্রশ্নের উপযুক্ত করা হয়নি (আপনার সমাধান মুছে ফোল্ডারটি পুনরায় তৈরি করে, যা জন্য জিজ্ঞাসা করা হয়নি)।
জাগ্রিমসান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.