【问题标题】:Run a MATLAB routine when a file is added to a folder将文件添加到文件夹时运行 MATLAB 例程
【发布时间】:2011-07-03 04:40:12
【问题描述】:

我目前正在从事一个项目,其中一个或多个文件可以转储到服务器上的多个位置之一。我在 MATLAB 中设置了一个可以很好地处理文件的例程,我想将其自动化,这样我就不必再浪费时间处理文件了。

我发现了一个 WMI 脚本(来自 ScriptingGuy Here),它的行为方式适合我,但我对 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)

惨败。

有人能给我一些指导吗?如何从 WMI 正确调用 MATLAB 并将目标目录更改为服务器上的多个目录?

【问题讨论】:

    标签: windows scripting matlab automation wmi


    【解决方案1】:

    您正在寻找WScript.ShellRun 方法:

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

    documentation 描述了可选参数,这些参数允许您控制所创建进程的显示方式,以及是否等待它完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多