![]() |
Открытие файлов по расширению не работает
Не работает в винде 10 найденный в теме батник http://forum.oszone.net/thread-249124.html
Задача такая: есть расшаренная папка С:\PDF\ в нее по локалке копируются файлы с разными именами и разными расширениями...необходимо отслеживать файлы pdf в этой папке и при обнаружении открывать их соответственно акробатом. Причем открывать все новые файлы pdf, даже если предыдущие не закрыты. Открытие по имени файла я сделал, не сложно, а вот по расширению не получается. Ткните куда копать. |
ilayka, где расположен:
Цитата:
|
Powershell
Код:
Param( |
Цитата:
|
powershell
Код:
$prog = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" |
YuS_2, sleep не нужен
|
Цитата:
|
Цитата:
В waitforchanged следует передавать два параметра. Открывать файлы нужно не из ответа watcher. Код:
Param( |
Цитата:
Цитата:
Цитата:
При появлении нового файла, он будет отслежен по указанному событию и результатом, уже будет объект, в котором содержится имя файла, его просто надо будет открыть. По условию задачи, этого достаточно. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Для ожидания, достаточно: Код:
$watcher.waitforchanged("created") или так: Код:
$watcher.waitforchanged("created",-1) Цитата:
Цитата:
Примерно так: Код:
$wtch = new-object system.io.filesystemwatcher |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
В общем, не совсем корректная работа кода получается... с лишним сканированием каталога и доп. проверками. Цитата:
В крайнем случае, можно использовать общий цикл do {} until ([console]::keyavailable) - как-то так. Но, в любом случае, это такое же "ручное вмешательство в работу кода", в том смысле, что в данном случае, проще прервать сессию, чем предусматривать какую-либо ручную остановку... ЗЫ Кстати, ISE - устаревший уже IDE, сейчас есть более актуальные, например Visual Studio Code... Цитата:
|
Спасибо всем. Но это п-шелл...к нему нужно еще батник с разрешением прикручивать. Отслеживание и авто-откр нужно делать на удаленной машине. В принципе прикрутить не сложно...однако я думал есть возможность только средствами бат файла, планировщика или микропрогой sleep реализовать.
|
YuS_2, раз уж пошла такая пьянка, давай замутим командлет ему))
Сделал вот такой набросок, пиши, если есть чего дополнить. cmdlet
Код:
function Start-FileWatcher{ Код:
$action={ Код:
$action={ Код:
Gwatch |
Fors1k, человек не хочет powershell, в принципе... сизифов труд, выполнять не хочется...
Ну, а если для себя, то в функцию старта, надо бы добавить проверки на правильные значения параметров и может быть, ещё и на наличие пути (если не указан, то текущий каталог) и т.п. Сегодня, что-то думать нет особого желания... :) |
|
Цитата:
следящаясобака.ps1
Код:
<# Garry Geller http://www.cyberforum.ru/powershell/thread1561433.html#post10781770 Было желание упростить немного, но может быть и не стоит изобретать велосипеды... |
Время: 23:34. |
Время: 23:34.
© OSzone.net 2001-