2017-02-10 17 views
1

Ищет удаление папок (вложенных папок) с определенным размером (150 МБ). Сценарий, который мне нужен, должен будет искать несколько папок на разных дисках. НапримерСоздать пакетный файл для удаления папок определенного размера

удалять папки в 150MB в E: Темп /, D: Темп /, F: TEMP/

Еще раз спасибо за помощь. Я не хочу тратить свое время, я искал везде и пытался сделать свой собственный сценарий, но не смог.

+1

Покажите сценарий, который вы пробовали, как знак собственных усилий! – geisterfurz007

+0

Dim objFD Set objFD = CreateObject ("Scripting.FileSystemObject") Set objSelectedFolder = objFD.GetFolder ("I: \ Фильмы") Set colSubfolders = objSelectedFolder.SubFolders Для каждого objSubfolder В colSubfolders Если objSubfolder.Size <150000000 Затем objSubfolder.Delete True End If Next – Alex

+1

Папки не имеют размера, размер сообщаемого является совокупным значением для всех файлов, содержащихся внутри. По этой причине вы должны переформулировать свой вопрос, чтобы точно указать, что именно вы намерены делать, когда добавляете свой код. – Compo

ответ

0
@echo off 
set "150mb=157286400" 
set "root_dir=E:\RootDir" 
setlocal enableDelayedExpansion 
:: recursive listing of the folders. 
for /d /r "%root_dir%\" %%# in ("*") do (
    rem echo %%~f# 
    call :getSize %%# 
    rem echo !size! 
    if !size! equ !150mb! (
     echo rd /s /q "%%~f#" 
    ) 
) 



exit /b 0 
:getSize  
    setlocal enableextensions disabledelayedexpansion 

    set "target=%~1" 
    if not defined target set "target=%cd%" 

    set "size=0" 
    for /f "tokens=3,5" %%a in (' 
     dir /a /s /w /-c "%target%" 
     ^| findstr /b /l /c:" " 
    ') do if "%%b"=="" set "size=%%a" 
    endlocal & (
     set size=%size% 
    ) 

функция размер папки беззастенчиво украден from here. Имейте в виду, что в чистой партии вы можете получить размер файла/папки только в укусах - размер жестко запрограммирован в начале скрипта, но вы можете его изменить. В этой строке echo rd "%%~f#" целевая папка только эхо. Вам нужно будет удалить echo, чтобы он работал.

+0

спасибо за вашу помощь npocmaka, мне нужно учиться на языке партии плохо ... так полезно. – Alex