2012-04-06 144 views
1

誰かが私が間違っている場所で助けてくれますか? このスクリプトは作成するための監視フォルダ用で、削除または変更されたテキストファイルvbsでフォルダファイルを監視する方法

sPath = "C:\scripts\test" 
sComputer = "." 
sDrive = split(sPath,":")(0) 
sFolders1 = split(sPath,":")(1) 
sFolders = REPLACE(sFolders1, "\", "\\") & "\\" 

Set objWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2") 
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _ 
("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE " _ 
& "TargetInstance ISA 'CIM_DataFile' AND " _ 
& "TargetInstance.Drive='" & sDrive & "' AND " _ 
& "TargetInstance.Path='" & sFolders & "' AND " _ 
& "TargetInstance.Extension = 'txt' ") 

Wscript.Echo vbCrlf & Now & vbTab & _ 
"Begin Monitoring for a Folder " & sDrive & ":" & sFolders1 & " Change Event..." & vbCrlf 

Do 
    Set objLatestEvent = colMonitoredEvents.NextEvent 
    Select Case objLatestEvent.Path_.Class 

    Case "__InstanceCreationEvent" 
    WScript.Echo Now & vbTab & objLatestEvent.TargetInstance.FileName & "." & objLatestEvent.TargetInstance.Extension _ 
    & " was created" & vbCrlf 

    Case "__InstanceDeletionEvent" 
    WScript.Echo Now & vbTab & objLatestEvent.TargetInstance.FileName & "." & objLatestEvent.TargetInstance.Extension _ 
    & " was deleted" & vbCrlf 

    Case "__InstanceModificationEvent" 
    If objLatestEvent.TargetInstance.LastModified <> _ 
    objLatestEvent.PreviousInstance.LastModified then 
    WScript.Echo Now & vbTab & objLatestEvent.TargetInstance.FileName & "." & objLatestEvent.TargetInstance.Extension _ 
    & " was modified" & vbCrlf 
    End If 
    End Select 
Loop 

Set objWMIService = nothing 
Set colMonitoredEvents = nothing 
Set objLatestEvent = nothing 

私は

sPath = "\\ComputerName\C$\scripts\test" 

を書くときに、このスクリプトは完璧に実行されたがありがとうござい

sPath = "C:\scripts\test" 

のinsted .. ..

+0

問題はありません。どのバージョンのWindowsですか?これを管理者として実行していますか? – Nilpo

答えて

3

Googleの場合"WMI TargetInstance.Drive"、yoドライブ文字にコロンが必要であることがわかります。

SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'CIM_DataFile' AND TargetInstance.Drive='E:' AND TargetInstance.Path='\\trials\\SoTrials\\answers\\10041057\\data\\' AND TargetInstance.Extension = 'txt' 

のようなクエリです。

+0

うわー、素晴らしいキャッチ。私はそれを見ませんでした。 – Nilpo

関連する問題