PDA

Показать полную графическую версию : [решено] Проверка директории на наличии файлов и папок


chernecrishi
15-05-2015, 10:36
Собственно проблема такая, есть кусочек кода в котором нужно сделать: если файлы и папки в директории есть то выполнить одно действие, если файлов и папок нет то другое,


set filesDIR=C:\test2
dir %filesDIR% /a-d >nul 2>nul && (
ECHO Есть файлы
) || (
ECHO Нет файлов
)


тут работает только на файлы, если делать атрибуты для папок, то он учитывает "." и ".." директории, в итоге ответ всегда что "ЕСТЬ ФАЙЛЫ"
Как этого избежать?

dedmazai1870
15-05-2015, 11:20
chernecrishi
Посмотрите здесь (http://forum.oszone.net/post-1851526.html#post1851526).

Georgio
15-05-2015, 11:32
Вот такой вариант никогда не подведёт:


set "filesDIR=C:\test2"

if exist "%filesDIR%\" (
2>nul dir/a/b "%filesDIR%"| find/c /v ""| >nul findstr/vx 0&& (
echo Папка не пуста.
)|| (
echo Папка пуста.
)
) else (
echo Папка не найдена.
)


.

chernecrishi
15-05-2015, 11:44
Georgio,
Спасибо, огромное. То, что нужно)

Iska
15-05-2015, 13:46
Вот такой вариант никогда не подведёт: »
Сожалею, но подведёт ;). Достаточно наличия файла «C:\test2» вместо папки «C:\test2», чтобы получить ошибочное уведомление «Папка не пуста.». Т.е., надо как минимум:
if exist "%filesDIR%\." (

Georgio
15-05-2015, 15:02
Т.е., надо как минимум: if exist "%filesDIR%\." ( »


Как минимум нужно добавить просто слеш (if exist "%filesDIR%\" (),
что я и написал:wink:.

Iska
15-05-2015, 15:42
что я и написал. »
Когда я писал, я ещё не видел Вашей правки.




© OSzone.net 2001-2012