Войти

Показать полную графическую версию : запись в лог путей к пустым папкам


lovehate
16-03-2014, 17:04
Добрый день!

Столкнулся с проблемой в создании скрипта, который проверит папку D:\OB и все её подпапки (4 уровня вложенности) на наличие пустых папок, выведя пути к пустым папкам в лог log.txt

Нашел следующий скрипт в соседней теме, но он делает обратную задачу, показывает файлы в папках < определенного размера, при этом пустые папки в лог не выводит. Может его можно переделать под данный запрос?

@echo off
setlocal enableextensions enabledelayedexpansion

set sRootFolder=D:\OB
set /a lLimit = 0.0005*1^<^<20

if exist "%sRootFolder%\." (
>"poisk.txt" (
for /f "usebackq delims=" %%i in (
`dir "%sRootFolder%\*.*" /b /s /a:-d`
) do if %%~zi gtr %lLimit% echo %%i %%~zi )
) else (
echo Can't find root folder [%sRootFolder%].
exit /b 1
)

endlocal
exit /b 0

Georgio
17-03-2014, 18:09
Может его можно переделать под данный запрос? »


Этот скрипт нельзя переделать под Ваш запрос, можно лишь написать свой скрипт.

@echo off
chcp 1251>nul
set directory_for_testing=D:\OB
(
for /d /r "%directory_for_testing%" %%i in (*) do (
for /f %%j in ('dir "%%i" /b 2^>nul') do (
set /a n+=1
)
if not defined n (
echo %%i
) else (
set n=
)
)
)>"log.txt"
exit /b

Iska
18-03-2014, 00:42
@echo off
setlocal enableextensions enabledelayedexpansion

>"log.txt" (
for /r "E:\Песочница\0367\02" %%i in (.) do (
dir /b /a "%%~i" | find.exe /v "" 2>nul 1>&2 || echo %%~fi
)
)

endlocal
exit /b 0

Georgio
18-03-2014, 04:47
Ещё вариант:

@echo off
chcp 1251>nul
set directory_for_testing=D:\OB
(
for /f "tokens=*" %%i in ('dir "%directory_for_testing%" /ad /b /s') do (
for /f %%j in ('tree "%%i" /a /f^| find /c /v ""') do (
if %%j==5 (
for /f %%k in ('tree "%%i" /a /f') do (
set /a n+=1
)
call echo %%n%%| >nul findstr /x 4&& echo %%i
set n=
)
)
)
)>log.txt
exit /b




© OSzone.net 2001-2012