Показать полную графическую версию : [решено] Проверка директории на наличии файлов и папок
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).
Вот такой вариант никогда не подведёт:
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,
Спасибо, огромное. То, что нужно)
Вот такой вариант никогда не подведёт: »
Сожалею, но подведёт ;). Достаточно наличия файла «C:\test2» вместо папки «C:\test2», чтобы получить ошибочное уведомление «Папка не пуста.». Т.е., надо как минимум:
if exist "%filesDIR%\." (
Т.е., надо как минимум: if exist "%filesDIR%\." ( »
Как минимум нужно добавить просто слеш (if exist "%filesDIR%\" (),
что я и написал:wink:.
что я и написал. »
Когда я писал, я ещё не видел Вашей правки.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.