ফোল্ডার এবং এর সামগ্রীগুলি মুছতে ব্যাচ ফাইল


2

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

@ কেচো শিরোনাম অপেক্ষা!

"উত্সডির = z: OLD ফোল্ডার" সেট করুন

যদি "% উত্সডির%" উপস্থিত না থাকে (প্রতিধ্বনিত।% উত্স খুঁজে পাবেন না ডায়ার% এবং GoTo: সম্পন্ন)

:: / ডিলিমস = "%%" এর জন্য ফাইলগুলি মুছুন! ইন ('দির "% উত্সডির% \") করুন এবং
@rd "%%!" / s / q "% সোর্সডির% \ * AM নমুনা"

: শিরোনাম হয়েছে, হয়ে গেল .......

প্রতিধ্বনি। & বিরাম> nul


পূর্ণ উত্স কোড নমুনা অ্যাপ্লিকেশন সহ কোনও চূড়ান্ত সমাধান ? আইএমএইচও, লার্নিং কার্ভ কমিয়ে আনার জন্য আরও ভাল নমুনাগুলি সম্পূর্ণ উত্স কোড এবং ভাল নিদর্শন সহ বাস্তব অ্যাপ্লিকেশন
কিউইনেট

উত্তর:


6
for /d /r Z:\Folders %d in (SAMPLE) do if exist "%d" rd /s /q "%d"

আপনাকে একটি ব্যাচের ফাইলে %% d ব্যবহার করতে হবে তবে এটি মূল ফর্ম। আমি .svn ফোল্ডারগুলি সরাতে সাবভারশন ওয়ার্কিং ডিরেক্টরিগুলি পরিষ্কার করার জন্য অনুরূপ কনস্ট্রাক্ট ব্যবহার করেছি।

সম্পাদনা: ফর কমান্ডের সিনট্যাক্স স্থির করে। আমি পোস্ট করার সময় আমি মেমরি থেকে এবং একটি উইন্ডোজ সিস্টেম থেকে দূরে কাজ করছিলাম। দুঃখিত।


তাত্ক্ষণিক প্রতিক্রিয়ার জন্য ধন্যবাদ তবে এটি কোনও কারণে / r / d %% d (সি: \ পাথ \ টু \ উত্স *) এর জন্য
ব্যবহারকারী 213878

সমাধানটি এখানে:@ECHO OFF SET FOLDER_PATH=Z:\FOLDERS SET SUBFOLDER_NAME=SAMPLE for /d /r %FOLDER_PATH% %%d in (%SUBFOLDER_NAME%) DO @if exist %%d echo "%%d" && rd /s/q "%%d"
ব্যবহারকারী 213878

forকমান্ডটিতে আপনার প্রসারণের সমস্ত উদাহরণ উদ্ধৃত করতে ভুলবেন না যাতে আপনি সেগুলিতে ফাঁকা স্থানগুলি সঠিকভাবে পরিচালনা করেন। আমার উত্তর আপডেট।
আফরাজায়

1

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

এটি কীভাবে কাজ করবে তার নমুনা

এই উদাহরণটিতে ওয়াইল্ডকার্ড বিকল্পটি সত্য হিসাবে সেট করা আছে, আরও তথ্যের জন্য নীচের কোডটি দেখুন

dir D:\deltest

Wed 04/03/2013  07:05 PM    <DIR>          KEEPME
Wed 04/03/2013  07:05 PM    <DIR>          SAMPLE
Wed 04/03/2013  07:05 PM    <DIR>          SAMPLE2

delete-sample-dir.bat d:\deltest

Searching for *SAMPLE* in D:\deltest
Deleting the folder D:\deltest\SAMPLE
Deleting the folder D:\deltest\SAMPLE2

dir D:\deltest

Wed 04/03/2013  07:05 PM    <DIR>          KEEPME

জন্য কোড delete-sample-dir.bat

    @echo off 

    REM set the name of the directory you would like to target for deleting
    set dirname=SAMPLE

    REM set the following to "true" if you want to select any directory that includes the name, e.g., a wildcard match
    set usewildcard=true


    REM --DO NOT EDIT BELOW THIS LINE---------------

    REM sentinel value for loop
    set found=false

    REM If true surround in wildcards
    if %usewildcard% == true (
        set dirname=*%dirname%*
    ) 

    REM use current working directory or take the directory path provided as the first command line parameter
    REM NOTE: do not add a trailing backslash, that is added in the for loop, so use "C:" not "C:\"
    set directorytosearch=%cd%
    if NOT "%1%" == "" (
        set directorytosearch=%1%
    )
    echo Searching for %dirname% in %directorytosearch%


    REM /r for files
    REM /d for directories
    REM /r /d for files and directories
    for /d %%i in (%directorytosearch%\%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
            rmdir /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%
    )

কেউ এই ব্যাচটিকে রেফারেন্স করেছে এবং আমি অনাবৃত ওয়ার্স %%iএবং এর "%1%"পরিবর্তে অপ্রয়োজনীয় ব্যবহারটি আবিষ্কার করেছি "%~1"। এগুলি বাদ দিয়ে if existঅতিরিক্ত অতিরিক্ত।
লটপিংস

0

@ ব্যবহারকারী213878 মন্তব্য সমাধান:

ফোল্ডারডিবগ.বাট এর জন্য কোড

@echo off
color 1F
echo.
echo Delete Debug Folder

SET FOLDER_PATH=C:\TFS\AddIn\bin
SET SUBFOLDER_NAME=Debug
SET FULLPATH=%FOLDER_PATH%\%SUBFOLDER_NAME%
IF NOT EXIST "%FULLPATH%" (echo.Could not find %FULLPATH% &GoTo:done)

echo.
echo Deleting...
for /d /r %FOLDER_PATH% %%d in (%SUBFOLDER_NAME%) DO @if exist %%d echo "%%d" && rd /s/q "%%d"

:done title,Done.......

:EOF
echo Waiting seconds
timeout /t 3 /nobreak > NUL
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.