powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Автозапуск bat-файла при появлении нового файла в папке.
13 сообщений из 13, страница 1 из 1
Автозапуск bat-файла при появлении нового файла в папке.
    #39311834
baza906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Просьба подтвердить или опровергнуть возможность реализации алгоритма.

Сначала суть задачи: имеются файлы excel содержащие макросы и выполняющие их перед открытием файла.
Выполнение макросов занимает какое-то время, создавая определенный дискомфорт пользователям.
Выгрузка в файлы с макросамм осуществляется с помощью ПО, установленного на сервере с Linux, а обращаются
пользователи к файлам из этой папки уже с клиентских машин с windows (папка примонтирована на сервере с Linux).

Хотелось бы иметь функционал, который будет выполнять макросы в файлах и сохраняться полученное состояние в файлы с форматом
xlsx, без макросов. Такую возможность предоставляют vbs-скрипты, но они не могут быть запущены после экспорта, так как этого не позволяет Linux.
По этому, вопрос такой - можно ли реализоваться автоматический запуск VBS-скрипта с помощью bat-файла каждый раз при появлении в папке файла (триггером должно служить событие появления нового файла в папке)? Этот процесс уже мог бы выполняться из-под windows.
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39312000
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VBS-скрипт и сам, без всяких там BAT-костылей, может опрашивать каталог, и при появлении в нём файла запускать необходимую процедуру преобразования. Периодичность сканирования каталога можно установить, например, равным половине среднего времени работы макроса (но не надо делать его менее 1 секунды).
Ещё мне кажется разумным, если ПО, формирующее файлы, будет их создавать в файловой системе Windows (или копировать туда из своей по завершении формирования) - не очень хорошо, если скрипт будет постоянно теребить сервер по сети... кстати, это позволит запускать скрипт по заданию планировщика, настроенному на событие.
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39312310
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baza906,
По вашим данным возникает несколько вопросов по поводу обработки, но я в свое время сталкивался с подобной проблемой, пользователи говорили висит комп, просто висит, после чего сделал на время действия продолжительных макросов вывод на экран нечто типа таскбара с текущей строкой, ох и давно это было, но зато потом вопросов не было...
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39312364
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baza906По этому, вопрос такой - можно ли реализоваться автоматический запуск VBS-скрипта с помощью bat-файла каждый раз при появлении в папке файла (триггером должно служить событие появления нового файла в папке)?


В Windows NT, а также в других операционных системах существует системный сервис извещения по наступлению какого-либо события,
обзывается сие термином NotifyEvent .

вот ссылка на WinAPI
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365261(v=vs.85).aspx

у многих скриптовых языков высокого уровня есть библиотечные функции для вызова Win32 на эту тему.
в powershell метод называется FileSystemWatcher
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39312521
baza906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

К сожалению, это вряд ли возможно. Так как к файлу требуется обращение из двух систем - основное ПО, выполняющее все действия, установлено на linux и соответствено видит только файлы этой системы (+ примотрированные шары из windows), а windows используется только для запуска утилиты, подготавливающей файл для экспорта данных и передающей дальнейшее управление основному ПО. Т.е. обе системы обращаются к одному фалу, но каждая со своей стороны. По этому не вижу пути, как со стороны сервера на Linux копировать данные в windows
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39312570
baza906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661,
спасибо большое!
Тогда пока останавливаюсь на следующей последовательности:
файл xlsm (с поддержкой макросов) кладется в папку -> по этому событию запускается powershell - скрипт ->
powershell - скрипт запускает VBS - скрипт, который открывает файл и сохраняет его как xlsx

В случае, если получится корректно работающее решение - отпишусь о результатах
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39312982
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baza906,
я не пользуюсь powershell и упомянул его исключительно
по причине присутствия последнего в версиях Windows 7 и старше по умолчанию,
но, думаю, powershell вполне способен дёргать ActiveX методы Excel самостоятельно безо всякого VBS.
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39313106
EvilHomer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baza906, а новый файл какая прога туда кладет?
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39313169
baza906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvilHomer,
SAS, с помощью собственной утилиты PC FILES
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39313379
baza906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodin661,
дело в том,что с VBS я знаком хоть как то, а в powershell мне известно только название)
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39313564
EvilHomer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39313660
baza906
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvilHomer,
вы имеете в виду запустить скрипт сразу после выгрузки файла?
...
Рейтинг: 0 / 0
Автозапуск bat-файла при появлении нового файла в папке.
    #39313855
EvilHomer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baza906, нет, добавить задачу в операционной системе, запускать батник, например каждые 20 минут, если он находит файл совершает какое то действие.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Автозапуск bat-файла при появлении нового файла в папке.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]