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
|
Код:
@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
)
|
Код:
@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.
© OSzone.net 2001-