Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт удаляющий папки размером меньше 100 кбайт в директории (http://forum.oszone.net/showthread.php?t=314308)

cyberp1983 27-04-2016 08:42 2630000

Скрипт удаляющий папки размером меньше 100 кбайт в директории
 
Есть директория в которой сотни папок(с подпапками) в которых должны храниться файлы общим размером от 400 кбайт.
Но часть этих файлов из за ошибки была когда то уничтожена, и сейчас хранится куча, или совсем пустых или с не полным комплектом файлов, папок, которые нужно удалить.
Нужен Скрипт удаляющий папки размером меньше 100 кбайт в директории.
Заранее Огромное Спасибо!

greg zakharov 27-04-2016 10:22 2630040

Код:

@echo off
  setlocal&chcp 1251>nul
    for /f %%i in ('dir /ad /s /b') do (
      for /f "tokens=3" %%j in (
        'robocopy "%%~i" "%tmp%" /l /bytes^
        /nfl /ndl /xj /njh ^| find /i "байт"'
      ) do if %%j lss 1024 rd /q /s "%%~i"
    )
  endlocal&chcp 866>nul
exit /b


megaloman 27-04-2016 17:09 2630174

Код:

@Echo off

Set "In=D:\Dir100"
Set "Size=102400"

SetLocal EnableExtensions EnableDelayedExpansion

for /f "usebackq delims=" %%d in (`dir /b /A:D "%In%\" 2^>nul`) Do (
        for /f "usebackq tokens=3" %%i in (`dir /s /-c /A:-D "%In%\%%d\" 2^>nul`) Do Set "A=!B!" & Set "B=%%i"
        Set "BB=!A:~0,1!"
        Set /A B=!BB:~0,1!*1 2>nul
        If Not "!B!"=="!BB!" Set "A=0"
        If !A! LSS %Size% Rd "%In%\%%d" /q /s
)


alpap 27-04-2016 17:22 2630177

Код:

@echo off
for /f "delims=" %%A in ('dir/ad/b/s "papka"') do (
 for /f "tokens=3" %%a in ('dir/a-d/s/-c "%%A"^|sort/+2147483647^|more +1^|set/p ds^=^^^&cmd/v/c echo:!ds!') do (
  set/a ds=%%a/1024&cmd/v/c if !ds! lss 100 echo:Удаляем папку [rd/s/q "%%A"]
))
pause>nul

echo:Удаляем папку и [] - убрать, если все устраивает.


Время: 20:42.

Время: 20:42.
© OSzone.net 2001-