当文件添加到文件夹时触发VBScript [英] Trigger a VBScript when a file is added to a folder

查看:126
本文介绍了当文件添加到文件夹时触发VBScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望自动执行一些任务。我需要将文件从一个文件夹移动到另一个文件夹。我写了下面的脚本,它的工作正常。



但是我的要求是在后台自动触发此VB脚本,当文件创建或添加到文件夹

 '脚本开始

使用CreateObject(Scripting.FileSystemObject)
.MoveFileC:\Source\Files\ *。*,D:\Destination\Files\
结束

'脚本结束


解决方案

InstanceCreationEvent

 设置objWMIService = GetObject(winmgmts:{impersonationLevel = impersonate}!\\.\root\cimv2)
设置colMonitoredEvents = objWMIService.ExecNotificationQuery _
(SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE Targetinstance ISA'CIM_DirectoryContainsFile'和TargetInstance.GroupComponent ='Win32_Directory.Name =c:\\\\\scripts')

设置objLatestEvent = colMonitoredE vents.NextEvent
使用CreateObject(Scripting.FileSystemObject)
.MoveFileC:\Source\Files\ *。*,D:\Destination \Files\
结束
循环

InstanceModificationEvent

 设置objWMIService = GetObject(winmgmts:{impersonationLevel = impersonate}!\\.\root\cimv2)
设置colMonitoredEvents = objWMIService .ExecNotificationQuery _
(SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE Targetinstance ISA'CIM_DirectoryContainsFile'和TargetInstance.GroupComponent ='Win32_Directory.Name =c:\\\\\scripts')
Do
设置objLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo objLatestEvent.TargetInstance.PartComponent
循环

InstanceDeletionEvent

 设置objWMIService = GetObject(winmgmts:{impersonationLevel = impersonate}! \\\。 \\ rot \cimv2)
设置colMonitoredEvents = objWMIService.ExecNotificationQuery _
(SELECT * FROM __InstanceDeletionEvent WITHIN 10 WHERE Targetinstance ISA'CIM_DirectoryContainsFile'和TargetInstance.GroupComponent ='Win32_Directory.Name =c: \\\scripts')
Do
设置objLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo objLatestEvent.TargetInstance.PartComponent
循环


I wish to automate some tasks. I need to move files from one folder to another. I have written the script below which is working fine.

But my requirement is to trigger this VB script automatically, in the background, when a file is created or added to a folder.

'Script Begins

With CreateObject("Scripting.FileSystemObject")
    .MoveFile "C:\Source\Files\*.*", "D:\Destination\Files\"
End With

'Script Ends

解决方案

InstanceCreationEvent

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\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
    With CreateObject("Scripting.FileSystemObject")
        .MoveFile "C:\Source\Files\*.*", "D:\Destination\Files\"
    End With
Loop

InstanceModificationEvent

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceModificationEvent 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

InstanceDeletionEvent

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceDeletionEvent 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

这篇关于当文件添加到文件夹时触发VBScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆