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

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

chernecrishi 15-05-2015 10:36 2507612

Проверка директории на наличии файлов и папок
 
Собственно проблема такая, есть кусочек кода в котором нужно сделать: если файлы и папки в директории есть то выполнить одно действие, если файлов и папок нет то другое,

Код:

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

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

dedmazai1870 15-05-2015 11:20 2507631

chernecrishi
Посмотрите здесь.

Georgio 15-05-2015 11:32 2507640

Вот такой вариант никогда не подведёт:


Код:

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 2507648

Georgio,
Спасибо, огромное. То, что нужно)

Iska 15-05-2015 13:46 2507699

Цитата:

Цитата Georgio
Вот такой вариант никогда не подведёт: »

Сожалею, но подведёт ;). Достаточно наличия файла «C:\test2» вместо папки «C:\test2», чтобы получить ошибочное уведомление «Папка не пуста.». Т.е., надо как минимум:
Код:

if exist "%filesDIR%\." (

Georgio 15-05-2015 15:02 2507723

Цитата:

Цитата Iska
Т.е., надо как минимум:
Код:

if exist "%filesDIR%\." (
»


Как минимум нужно добавить просто слеш (
Код:

if exist "%filesDIR%\" (
),
что я и написал:wink:.

Iska 15-05-2015 15:42 2507732

Цитата:

Цитата Georgio
что я и написал. »

Когда я писал, я ещё не видел Вашей правки.


Время: 06:39.

Время: 06:39.
© OSzone.net 2001-