মূল এবং শহরতলীতে নির্দিষ্ট ফোল্ডার মুছুন


-1

আমি মূল এবং শহরতলিতে নির্দিষ্ট ফোল্ডারটি মুছতে চাই, সমস্যাটি আমার কোডটি কেবলমাত্র ডিরেক্টরিতে মূল ফোল্ডারটি মুছে ফেলা হয়:

SET dirname=test
SET directory=%cd%
SET found=false


    if NOT "%1%" == "" (
        set directory=%1%
    )
    echo Searching for %dirname% in %directory%

    for /d %%i in (%directory%\%dirname%) do (
        IF EXIST %%i (
            REM change the sentinel value
            set found=true

            echo Deleting the folder %%i
            REM Delete a folder, even if not empty, and don't prompt for confirmation
            RD  /s /q %%i
        )
    )

    REM logic to do if no files were found
    if NOT "%found%" == "true" (
        echo No directories were found with the name of %dirname%
    )

এটি ফোল্ডার কাঠামো:

E:sampledelete
├───folder1
├───folder2
│   └───somefolder
├───test
│   └───somefolder
├───newfolder
│   ├───test
│   │   └───somefolder
├───newfolder2
│   ├───test

স্ক্রিপ্ট চালানোর পরে এটি এতে পরিবর্তিত হয়েছে:

E:sampledelete
├───folder1
├───folder2
│   └───somefolder
├───newfolder
│   ├───test
│   │   └───somefolder
├───newfolder2
│   ├───test

আপনি এখানে উইন্ডোজ যে সংস্করণটি ব্যবহার করছেন সেটির সাথে কি আপনি প্রশ্নটিতে একটি ট্যাগ যুক্ত করতে পারেন?
music2myear

আমি উইন্ডোজ 10
অ্যালবার্ট 222

(0) [উইন্ডোজ 10] ট্যাগ যুক্ত করতে দয়া করে আপনার প্রশ্নটি সম্পাদনা করুন। (1) "সাবর্ডার" কী? (২) আপনার সমস্যাটি আরও পরিষ্কারভাবে বর্ণনা করতে দয়া করে আপনার প্রশ্নটি সম্পাদনা করুন।
স্কট

@ স্কট আমি এটি সম্পাদনা করেছি এবং আমি উইন্ডোজ and এবং উইন্ডোজ ১০ এ পরীক্ষা করেছি। এটি কাজ করে না শুধুমাত্র ফোল্ডারটি মূল ডিরেক্টরিতে সরিয়ে দেয়
Albert222

আপনি কি লাইনটি মুছে ফেলতে চান যেমন: সি: \ 1 নোডডিপ \ 2 নোডসডিপ \ 3 নোডডিপ \ 4 নোডসডিপ \ ... \ পরীক্ষা?
এল

উত্তর:


0

ইস্যুগুলি নীচে বর্ণিত হয়। মূল ইস্যুটি ছিল ডিরেক্টরি ভুল ধারণা: আপনি মূলের নীচে 1 নোডের নীচে ডিরেক্টরিটির সন্ধান করছেন না। আপনার সঠিক ধারণা ছিল। আপনি যেমনটি বলেছেন যেহেতু আপনি "নতুন", তাই পার্থক্যগুলি বিশ্লেষণ করার পক্ষে এটি উপযুক্ত হবে।

@echo off
SET dirname=test
SET directory=%cd%
SET found=false

    if NOT "%1%" == "" (
        set directory=%1%
    )

    REM We want to look in the current directory not in for Z:\test
    for /d %%i in (%directory%*) do (
        echo Searching for %%i\%dirname% in %directory%

        REM We already know the folder existed because "do" ran.
        REM We want to look beneath the root directory
        IF EXIST %%i\%dirname% (
            REM change the sentinel value
            set found=true

            REM we want to delete the nodes beneath not the one in root
            echo Deleting the folder %%i\%dirname%

            REM Delete a folder
            REM we want to delete the nodes beneath not the one in root
            RD  /s /q %%i\%dirname%
        )

        IF %%1 == %dirname% (
            REM change the sentinel value
            set found=true

            REM Delete a folder, even if not empty, and don't prompt for confirmation
            echo Deleting the folder %%i\%dirname%
            RD  /s /q %%i
        )
    )

    REM logic to do if no files were found
    if NOT "%found%" == "true" (
        echo No directories were found with the name of %dirname%
    )

আপনাকে ধন্যবাদ তবে আমি মূল এবং সাবফোল্ডারগুলির সমস্ত ফোল্ডার সরিয়ে দিতে চাই
Albert222

0

আপনি কি ভুল বোঝাবুঝি করছেন for /d

/ ডি %% i এর জন্য ( দির 1 ফাইল 1 দির 2 ফাইল 2 দির 3 ফাইল 3 ) করুন স্টেটমেন্ট

না

  • SET %%i=dir1
  • statement
  • SET %%i=dir2
  • statement
  • SET %%i=dir3
  • statement

সমস্যাটি হচ্ছে, আপনি কেবল বলছেন , কোথায় আছে । আপনি ব্যবহার করতে চান , যা পুনরাবৃত্ত ডিরেক্টরি অনুসন্ধান করে। আপনার লুপটি দেখতে কিছুটা দেখতে পাওয়া উচিতfor /d %%i in (dir1) do statementdir1
%directory%\%dirname%for /r

    for /r %directory% %%i in (.) do (
        if exist %%i\%dirname% (
            REM change the sentinel value
            set found=true

            echo Deleting the folder %%i\%dirname%
            REM Delete a folder, even if not empty, and don't prompt for confirmation
            RD  /s /q %%i\%dirname%
        )
    )

আমি নিশ্চিত ছিলাম না যে তিনি নীচে কেবল 1 টি নোড, পুনরাবৃত্ত অনুসন্ধান করতে চান। প্রদত্ত ডিরেক্টরিটির নীচে (বা তার উদাহরণের মূলের) নীচে কেবল 1 টি নোড that নিজস্ব ডিরেক্টরি সহ। আমি এটি জিজ্ঞাসা করার চেষ্টা করেছি, তবে এখনও কোনও সাড়া পাইনি।
এল

আমি জানি যে / আর ফোল্ডারগুলি সরানোর সময় / ডি ফাইলগুলি সরিয়ে ফেলবে
Albert222

আপনি কি বলছেন তা আমি জানি না। আমি জানি যে উপরের ব্যাচ ফাইলটি উইন্ডোজ on তে কাজ করে, testডিরেক্টরি গাছের সমস্ত স্তরের নামের ডিরেক্টরি মুছে দেয়। আপনি কি উদ্বিগ্ন যে ফাইলগুলির নামও থাকতে পারে test? আমি তার জন্য পরীক্ষা করিনি।
স্কট

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