Запустите процедуру MATLAB, когда файл добавлен в папку - PullRequest
1 голос
/ 24 февраля 2011

В настоящее время я работаю над проектом, в котором файл или файлы могут быть выгружены в одно из нескольких мест на сервере.У меня есть подпрограмма, настроенная в MATLAB, которая довольно хорошо обрабатывает файлы, и я хотел бы автоматизировать ее, чтобы мне не пришлось тратить впустую больше времени на обработку файлов.

Я нашел скрипт WMI(от ScriptingGuy Здесь ), который ведет себя таким образом, что работает для меня, за исключением того, что я недостаточно знаю о WMI, чтобы изменить его в моих целях.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _
    & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
    & "TargetInstance.GroupComponent= " _
    & "'Win32_Directory.Name=""c:\\\\scripts""'")
Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    Wscript.Echo objLatestEvent.TargetInstance.PartComponent
Loop

Я пытался использоватьинструменты командной строки для MATLAB, заменив строку Wscript.Echo

matlab -automation -r someRoutine(varargin)

, которая с треском провалилась.

Может кто-нибудь дать мне несколько советов о правильном вызове MATLAB из WMI и изменении целевого каталога на несколькокаталоги на сервере?

1 Ответ

1 голос
/ 24 февраля 2011

Вы ищете WScript.Shell и метод Run:

Set objShell = WScript.CreateObject("WScript.Shell")    
objShell.Run "matlab -automation -r someRoutine(varargin)"

Документация описывает необязательные параметры, которые позволяют вам контролировать, какпроцесс, который создается, отображается, и ожидаете ли вы его завершения.

...