AMcoder - javascript, python, java, html, php, sql

Գործարկեք որոշ vbs կոդ ֆայլի անվան փոփոխության ժամանակ

Ես կցանկանայի, որ ֆայլի անվան փոփոխության ժամանակ կարողանայի գործարկել հատուկ vb script կոդ (օրինակ՝ պահել նոր ստեղծված ֆայլերի կամ դրանց անունը փոխած ֆայլերի ցանկը): Vbs-ը պետք է կանչվի յուրաքանչյուր ֆայլի անվան փոփոխության դեպքում, որը տեղի է ունենում նշված թղթապանակում:

Ես գիտեմ, թե ինչպես դա անել գրացուցակի ամբողջական սկանավորման միջոցով, բայց ես կցանկանայի գտնել ավելի արդյունավետ մեթոդ, օրինակ՝ OS-ի մի տեսակ կեռիկի միջոցով, որը կանչում է իմ կոդը:

Դա անելու որևէ ձև կա:

Շնորհակալություն, Ա.

18.05.2017

  • Ի՞նչ եք փորձել, և ինչպե՞ս է այն, ինչ փորձել եք ձախողվել: Իդեալում, դուք պետք է ներկայացնեք ձեր փորձածի Նվազագույն, ամբողջական և ստուգելի օրինակ և ներառեք կոնկրետ տեղեկություններ այն մասին, թե ինչպես է այն ձախողվել: , սխալի հաղորդագրություններով և/կամ սխալ ելքով: SO-ն ծածկագիր գրելու ծառայություն չէ. Լավագույն հարցերն այն հարցերն են, որոնք օգտակար տեղեկատվություն են տալիս, որպեսզի նրանք, ովքեր պատասխանում են, կարողանան ուղղորդել ձեզ ձեր սեփական ճիշտ պատասխանը մշակելու համար: Տես Ինչպես տալ լավ հարց: 18.05.2017
  • Փորձեք WMI 18.05.2017

Պատասխանները:


1

Գոյություն ունեն երկու պարզ WMI օրինակներ, որոնք հետևում են *.txt ֆայլերի փոփոխություններին C:\Test\ թղթապանակում:

Առաջինը նախատեսված է իրադարձությունների համաժամանակյա մշակման համար.

Option Explicit

Dim oWMIService, oEvents, s

Set oWMIService = GetObject("WinMgmts:\\.\root\CIMv2")
Set oEvents = oWMIService.ExecNotificationQuery( _
    "SELECT * FROM __InstanceOperationEvent " & _
    "WITHIN 1 WHERE " & _
    "TargetInstance ISA 'CIM_DataFile' AND " & _
    "TargetInstance.Drive = 'C:' AND " & _
    "TargetInstance.Extension = 'txt' AND " & _
    "TargetInstance.Path = '\\Test\\'")
Do
    With oEvents.NextEvent()
        s = "Event: " & .Path_.Class & vbCrLf
        With .TargetInstance
            s = s & "Name: " & .Name & vbCrLf
            s = s & "File Size: " & .FileSize & vbCrLf
            s = s & "Creation Date: " & .CreationDate & vbCrLf
            s = s & "Last Modified: " & .LastModified & vbCrLf
            s = s & "Last Accessed: " & .LastAccessed & vbCrLf
        End With
        If .Path_.Class = "__InstanceModificationEvent" Then
            With .PreviousInstance
                s = s & "Previous" & vbCrLf
                s = s & "File Size: " & .FileSize & vbCrLf
                s = s & "Last Modified: " & .LastModified & vbCrLf
            End With
        End If
    End With
    WScript.Echo s
Loop

Երկրորդը նախատեսված է իրադարձությունների ասինխրոն մշակման համար.

Option Explicit

Dim oWMIService, oSink

Set oWMIService = GetObject("WinMgmts:\\.\root\CIMv2")
Set oSink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_")
oWMIService.ExecNotificationQueryAsync oSink, _
    "SELECT * FROM __InstanceOperationEvent " & _
    "WITHIN 1 WHERE " & _
    "TargetInstance ISA 'CIM_DataFile' AND " & _
    "TargetInstance.Drive = 'C:' AND " & _
    "TargetInstance.Extension = 'txt' AND " & _
    "TargetInstance.Path = '\\Test\\'"
Do
    WScript.Sleep 1000
Loop

Sub Sink_OnObjectReady(oEvent, oContext)

    Dim s

    With oEvent
        s = "Event: " & .Path_.Class & vbCrLf
        With .TargetInstance
            s = s & "Name: " & .Name & vbCrLf
            s = s & "File Size: " & .FileSize & vbCrLf
            s = s & "Creation Date: " & .CreationDate & vbCrLf
            s = s & "Last Modified: " & .LastModified & vbCrLf
            s = s & "Last Accessed: " & .LastAccessed & vbCrLf
        End With
        If .Path_.Class = "__InstanceModificationEvent" Then
            With .PreviousInstance
                s = s & "Previous" & vbCrLf
                s = s & "File Size: " & .FileSize & vbCrLf
                s = s & "Last Modified: " & .LastModified & vbCrLf
            End With
        End If
    End With
    WScript.Echo s

End Sub

CIM_DataFile օրինակի հատկությունների մասին լրացուցիչ տեղեկություններ կարող եք գտնել հղումը MSDN-ում:

18.05.2017
  • Շնորհակալություն օգնության համար! Ձեր սցենարը լավ է աշխատում: 20.05.2017
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..