|
|
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
Добрый день. Просьба подтвердить или опровергнуть возможность реализации алгоритма. Сначала суть задачи: имеются файлы excel содержащие макросы и выполняющие их перед открытием файла. Выполнение макросов занимает какое-то время, создавая определенный дискомфорт пользователям. Выгрузка в файлы с макросамм осуществляется с помощью ПО, установленного на сервере с Linux, а обращаются пользователи к файлам из этой папки уже с клиентских машин с windows (папка примонтирована на сервере с Linux). Хотелось бы иметь функционал, который будет выполнять макросы в файлах и сохраняться полученное состояние в файлы с форматом xlsx, без макросов. Такую возможность предоставляют vbs-скрипты, но они не могут быть запущены после экспорта, так как этого не позволяет Linux. По этому, вопрос такой - можно ли реализоваться автоматический запуск VBS-скрипта с помощью bat-файла каждый раз при появлении в папке файла (триггером должно служить событие появления нового файла в папке)? Этот процесс уже мог бы выполняться из-под windows. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 11:57 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
VBS-скрипт и сам, без всяких там BAT-костылей, может опрашивать каталог, и при появлении в нём файла запускать необходимую процедуру преобразования. Периодичность сканирования каталога можно установить, например, равным половине среднего времени работы макроса (но не надо делать его менее 1 секунды). Ещё мне кажется разумным, если ПО, формирующее файлы, будет их создавать в файловой системе Windows (или копировать туда из своей по завершении формирования) - не очень хорошо, если скрипт будет постоянно теребить сервер по сети... кстати, это позволит запускать скрипт по заданию планировщика, настроенному на событие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 14:50 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
baza906, По вашим данным возникает несколько вопросов по поводу обработки, но я в свое время сталкивался с подобной проблемой, пользователи говорили висит комп, просто висит, после чего сделал на время действия продолжительных макросов вывод на экран нечто типа таскбара с текущей строкой, ох и давно это было, но зато потом вопросов не было... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2016, 22:18 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
baza906По этому, вопрос такой - можно ли реализоваться автоматический запуск VBS-скрипта с помощью bat-файла каждый раз при появлении в папке файла (триггером должно служить событие появления нового файла в папке)? В Windows NT, а также в других операционных системах существует системный сервис извещения по наступлению какого-либо события, обзывается сие термином NotifyEvent . вот ссылка на WinAPI https://msdn.microsoft.com/en-us/library/windows/desktop/aa365261(v=vs.85).aspx у многих скриптовых языков высокого уровня есть библиотечные функции для вызова Win32 на эту тему. в powershell метод называется FileSystemWatcher ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 07:22 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
Akina, К сожалению, это вряд ли возможно. Так как к файлу требуется обращение из двух систем - основное ПО, выполняющее все действия, установлено на linux и соответствено видит только файлы этой системы (+ примотрированные шары из windows), а windows используется только для запуска утилиты, подготавливающей файл для экспорта данных и передающей дальнейшее управление основному ПО. Т.е. обе системы обращаются к одному фалу, но каждая со своей стороны. По этому не вижу пути, как со стороны сервера на Linux копировать данные в windows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 10:58 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
volodin661, спасибо большое! Тогда пока останавливаюсь на следующей последовательности: файл xlsm (с поддержкой макросов) кладется в папку -> по этому событию запускается powershell - скрипт -> powershell - скрипт запускает VBS - скрипт, который открывает файл и сохраняет его как xlsx В случае, если получится корректно работающее решение - отпишусь о результатах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 11:51 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
baza906, я не пользуюсь powershell и упомянул его исключительно по причине присутствия последнего в версиях Windows 7 и старше по умолчанию, но, думаю, powershell вполне способен дёргать ActiveX методы Excel самостоятельно безо всякого VBS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2016, 21:11 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
baza906, а новый файл какая прога туда кладет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 08:45 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
EvilHomer, SAS, с помощью собственной утилиты PC FILES ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 10:15 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
volodin661, дело в том,что с VBS я знаком хоть как то, а в powershell мне известно только название) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 13:20 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
baza906, Как часто файл появляется? Запустить задание с аналогичным батником переделанным под себя: @ECHO On set /p file="Nazvanie iskomogo faila: " \\задаю переменную IF EXIST c:\%file% GOTO lab2 \\если мой файл есть :lab2 ATTRIB c:\%file% +S \\присваиваю атрибут GOTO paus IF NOT EXIST c:\%file% GOTO lab1 \\если файла нет :lab1 ECHO File not faund GOTO paus :paus pause ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 15:57 |
|
||
|
Автозапуск bat-файла при появлении нового файла в папке.
|
|||
|---|---|---|---|
|
#18+
EvilHomer, вы имеете в виду запустить скрипт сразу после выгрузки файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2016, 17:31 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=39313169&tid=1493375]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
149ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 269ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...