Мониторить папку
Подскажите, как реализовать мониторинг за определенной папкой(в которой сохраняются отчеты в формате txt), то есть при появлении в ней файлов - переносить их в другую папку присвоив произвольное имя (например Дата&время.txt)? Пробывал батником, но он переносит файлы не дождавшись когда их полностью создаст программа.
|
AlexVong, в планировщик поставьте выполнение каждые X минут.
|
Vadikan
Скорее всего проблема не в организации копирования по времени, а в том что программа сначала создает файл и потом в течении какого то периода времени дописывает в него данные
AlexVong
Как раз при помощи переименования и можно выяснить в CMD/BAT скрипте занят файл приложением или уже нет
Цитата:
Как в bat файле дождаться появления определенного файла.
Иногда необходимо при появлении определенного файла в папке выполнить какое-то действие. Чтобы организовать проверку появления файла в папке можно использовать следующий пакетный файл
: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 будет выполнена без ошибки (т.е. файл свободен), то с ним можно выполнять любые действия. В последнем примере это его удаление.
|
Источник -> Аккуратней у меня на этот линк ругается антивирус на BV:Agent-HE [Trj]
|
Sat_Kelman |
30-11-2011 12:55 1806364 |
У нас стоит Cron и каждый час запускает батник, который проверяет наличие файлов в папке.
|
Время: 01:40.
© OSzone.net 2001-