Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Fors1k:
Необязательно, только тогда его остановить будет невозможно)) »
а зачем его останавливать? Ну, даже если надо, то закрываем сессию и всё выключается...

Цитата Fors1k:
Это ожидание появления нового файла в папке. »
Не совсем. Цикл там зачем?
Для ожидания, достаточно:
Код: Выделить весь код
$watcher.waitforchanged("created")
и пока файл не появится, будет действовать ожидание...
или так:
Код: Выделить весь код
$watcher.waitforchanged("created",-1)
а с таймаутом в 1 сек., ожидание, по факту, будет работать 1 сек. и продолжится цикл...

Цитата Fors1k:
но сделать все он не сможет. »
В таком виде, да. Нужна подписка на события, тогда будет всё работать как надо и тогда этого:
Цитата Fors1k:
если в папку скопировать 2 (или больше) файла, то watcher сообщит нам только об одном, а второй проскочит мимо нас. »
уже не произойдет.
Примерно так:
Код: Выделить весь код
$wtch = new-object system.io.filesystemwatcher
$wtch.path  = "d:\111"
$wtch.filter = "*.pdf"
register-objectevent -inp $wtch -event Created -action {
	$prog = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
	$obj = "{0} создан {1}" -f $event.sourceeventargs.fullpath,$event.timegenerated
	$params  = @{Object = $obj;ForegroundColor = 'cyan'}
	write-host @params
	&$prog $event.sourceeventargs.fullpath
}

-------
scio me nihil scire. Ѫ

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

Отправлено: 21:26, 23-06-2020 | #11