Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как проверить в определённой директории наличие файлов (не подкаталогов!) ?

Ответить
Настройки темы
CMD/BAT - [решено] Как проверить в определённой директории наличие файлов (не подкаталогов!) ?

Аватара для SANIOK_AV

Старожил


Сообщения: 493
Благодарности: 6

Профиль | Отправить PM | Цитировать


Доброго времени суток!
Ситуация такая:
есть к примеру каталог D:\aaa\
в нём к примеру есть подкаталоги:
D:\aaa\1\
D:\aaa\2\
D:\aaa\333\
я в батнике хочу проверять или не появились в D:\aaa\ какието файлы
пробую сделать так:
Код: Выделить весь код
if exist D:\aaa\*.* goto 1
goto end
:1
echo "есть файлы"
:end
не получается...
батник отрабатывает даже если файлов нет... (((
Подскажите пожалуйста как проанализировать на наличие в этом каталоге именно файлов ане подкаталогов?
Заранее благодарен!
видимо реагирует на подкаталоги...

Отправлено: 12:05, 03-03-2009

 

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Devils0411, попробуйте так:
Код: Выделить весь код
@Echo Off
:: 81 пустая строка
For /L %%I In (1,1,81) Do Echo.>> D:\aaa\path.txt
:: с 82-й строки перечень *.inf файлов с полными путями (вложенные каталоги не проверяются)
For %%I In (
 D:\aaa\1
 D:\aaa\2
 D:\aaa\333
) Do For /F "UseBackQ" %%a In (`Dir %%I /B /ON 2^>nul`) Do If /i %%~sxa==.inf Echo %%I\%%a>> D:\aaa\path.txt

Отправлено: 17:35, 13-07-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


gora, а в чем загвоздка проверять вложенные?

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 17:47, 13-07-2009 | #12


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата Devils0411:
а в чем загвоздка проверять вложенные? »
Решение соответствует поставленной задаче. О проверке вложенных папок речи не было.
Можете добавить в перечень и вложенные папки, если они известны:
Код: Выделить весь код
...
For %%I In (
 D:\aaa\1
 D:\aaa\2
 D:\aaa\2\444
 D:\aaa\333\555
 D:\aaa\333\666\777
...

Отправлено: 17:58, 13-07-2009 | #13


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


Моя ошибка, не дописал до конца. В этих трех папках, большое количество подпапок, и писать путь к каждой равносильно копированию путей каждой папки вручную.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 18:04, 13-07-2009 | #14


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Пробуй так:

Код: Выделить весь код
@Echo off
SetLocal EnableDelayedExpansion 
SetLocal EnableExtensions

set WrkDir=D:\aaa
set Dst=Path.txt
set EmptyLns=82

for /R %WrkDir%\ %%F in (*.inf) do (
if not exist "%WrkDir%\%Dst%" for /L %%L in (1,1,%EmptyLns%) do Echo. >>"%WrkDir%\%Dst%"
Echo %%F>>"%WrkDir%\%Dst%"
)

type "%WrkDir%\%Dst%"
последняя строчка необязательна. Только найденные файлы будут добавляться и добавляться. Либо *.inf файлы нужно потом убирать либо проверять, как уже найденные (в зависимости от того, что нужно на выходе)

-------
Как сказало Дерево Дровосеку: "я - пень".

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:28, 13-07-2009 | #15


Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


Суть такая: Есть папка "aaa" в ней огромное количество подпапок. В большенстве этих папок есть файлы .inf Необходим батник, который проверял бы наличие inf файлов. Если Inf файл есть в папке скажем D:\aaa\vvv\qqq\3\t, то записывал путь в текстовый файл, например в path.txt, и вписывать начинал с 82 строки.

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 18:41, 13-07-2009 | #16


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Эту часть я реализовал в примере выше.
Поясню:
При повторном запуске, если файл Path.txt уже есть, то ВСЕ *.INF файлы из всех подкаталого будут заново добавлены в конец файла Path.txt, в противном случае этот файл будет создан, в нем будет 82 пустые строки, а затем пойдет список всех *.INF файлов.

-------
Как сказало Дерево Дровосеку: "я - пень".


Отправлено: 19:02, 13-07-2009 | #17


Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38

Профиль | Отправить PM | Цитировать


хотелось бы усовершенствовать этот вариант:
Код: Выделить весь код
dir D:\aaa\* /a-d 2>nul >nul && goto 1
goto end
:1
echo есть файлы
:end
как сделать, чтобы файл отрабатывал каждые допустим 5 минут, контролируя появление файлов в папке?

-------
Information must be free!
Нет границ, есть только препятствия


Отправлено: 23:44, 20-06-2011 | #18


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Hector:
отрабатывал каждые допустим 5 минут »
без проблем - паузой или штатным планировщиком
Цитата Hector:
контролируя появление файлов в папке »
слишком туманно, по-возможности, формулируйте задачу конкретней
любых файлов?.. только новых?.. что делать с этим списком?.. и т.д.

Последний раз редактировалось amel27, 21-06-2011 в 10:27. Причина: очепятка


Отправлено: 10:05, 21-06-2011 | #19


Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38

Профиль | Отправить PM | Цитировать


amel27, обычно папка пуста, но как только в ней появится любой файл, выдать сообщение

-------
Information must be free!
Нет границ, есть только препятствия


Отправлено: 10:14, 21-06-2011 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как проверить в определённой директории наличие файлов (не подкаталогов!) ?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как проверить наличие процесса? Не флужу AutoIt 0 13-01-2010 07:31
CMD/BAT - [решено] Как скопировать содержимое txt файлов всех подкаталогов в один файл dezertic Скриптовые языки администрирования Windows 3 20-10-2009 12:47
CMD/BAT - [решено] Проверить наличие файла с текущей датой. OlegStarov Скриптовые языки администрирования Windows 4 21-04-2009 12:11
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? mitiya Скриптовые языки администрирования Windows 2 27-06-2008 20:50
Как проверить JavaScript'ом наличие Flash??? Krendebobel Вебмастеру 10 28-06-2005 16:17




 
Переход