При поддержке компании Mobatime Systems: лидера в разработке, производстве и продаже приборов и систем времени. Подробнее...
Сайт · Форум WindowsFAQ.ru - Сайт о Windows, компьютерах, системном администрировании, локальных сетях

Поиск

Сервер NTP

Точное время MSK Serverzeit Доступ к серверу NTP первого стратума предоставляется бесплатно
Статус: в сети

Друзья

Клуб любителей ASPLinux
Kerio Winroute Firewall инструкции настройки

Шаблоны

New_WindowsFAQ
GFI
Главная
Как в bat файле дождаться появления определенного файла Версия для печати
Автор SavageNoName   
Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл

:test
if exist c:\1.txt goto go
sleep 10
goto test
:go
notepad

Такой пакетный файл будет проверять с интервалом 10 секунд наличие в корне диска С файла 1.txt и когда файл 1.txt появится, будет выполнено действие, указанное после метки go, т.е. в этом примере будет запущен Блокнот.
Утилита sleep свободно распространяется в составе Resource Kit. Вы можете её скачать здесь.
Если файл 1.txt большого размера и копируется откуда-то, то может получится так, что пакетный файл проверит его наличие в то время, как файл еще не скопировался или занят другим приложением. В таком случае, попытка выполнить какие-то действия с файлом 1.txt приведет к ошибке. Чтобы этого не произошло пакетный файл можно модифицировать следующим образом

:test
if exist c:\1.txt goto go
sleep 10
goto test
:go
rename c:\1.txt 1.txt
if not errorlevel 0 goto go
del c:\1.txt

Когда файл 1.txt скопировался на диск С не полностью, либо занят другим приложением, попытка его переименовать вызовет ошибку и цикл будет повторяться до тех пор, пока файл не скопируется полностью либо не будет освобожден. После того, как команда rename c:\1.txt 1.txt будет выполнена без ошибки (т.е. файл свободен), то с ним можно выполнять любые действия. В последнем примере это его удаление.
 
< Предыдущая статья   Следующая статья >

Лента RSS

IRC-канал

сервер: irc.icqinfo.ru
порт: 6667
канал: #pc4all
Здесь можно получить квалифицированную компьютерную помощь
Подробнее
Mobatime - Автору - Рекламодателю - Веб-мастеру - Контакт - История
© Владислав Семёнов aka SavageNoName 2003-2009
Техническая поддержка Дмитрий Немчинов aka File
При любом использовании материалов ссылка на WindowsFAQ.ru обязательна
Сайт работает на CMS Joomla
Rambler's Top100 хостинг от .masterhost