vbscript - Windows: File Monitoring Script (Batch/VBS)

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg arbejder i øjeblikket på et script for at oprette et brugerdefineret backup script, det eneste stykke jeg mangler er en filmonitor. Jeg har brug for en form for et script, der vil overvåge en mappe til filændringer, og derefter køre en kommando med den fil, der er ændret.


Så hvis for eksempel filen ændres, vil den 'udføre' c:/syncbatch.bat\% Location\_Of\_File\% '


Enhver hjælp på hvor jeg skal starte er meget værdsat. Mange tak!

Bedste reference


I VBScript kan du overvåge en mappe til filændringer ved at abonnere på WMI \_\_InstanceModificationEvent hændelsen. Disse artikler indeholder prøvekode, som du kan lære af og tilpasse til dine specifikke behov: [2]



  • Overvågning af WMI og File System

  • Hvordan kan jeg overvåge forskellige typer begivenheder med kun et script?


Andre referencer 1


Opkald WMI er ret kryptisk, og det får WMI-tjenesten til at begynde at køre, hvilket kan bidrage til at opblussen, da det er ret stort, og du kan virkelig ikke annullere de filændringer, du har anmodet om fra det uden genstart. Nogle mennesker eksperimenterede med fjernudskrivning fra en Dropbox-mappe fandt, at et simpelt VBScript-program, der løb en endeløs sløjfe med et 10 sekunders WScript.Sleep-opkald i sløjfen, der bruges langt mindre ressource. Selvfølgelig for at stoppe det er du nødt til at opgøre det pågældende script eller program i det nogle exit-trigger, det kan finde som en specifikt navngivet tom fil i urmappen, men det er endnu nemmere at gøre end at messe med WMI. [3] [4]


Folder Spy http://venussoftcorporation.blogspot.com/2010/05/thefolderspy.html
er en gratis letvægts DOT.NET-baseret fil/mappe, der ser på GUI-applikation Jeg ved ved før at køre scripts baseret på filændringer. Det ligner, at den nye version kan passere begivenhedsfilnavnet til den lancerede kommando. Den gamle version, jeg havde, gjorde ikke ' Jeg understøtter endnu ikke filhændelsesinfo, så da jeg startede, måtte scriptet forekomme et filsystemobjekt og scanne den overvågede mappe for at finde de nye filer baseret på kriterier som datestamps og størrelser. [5]


Denne nyere version ser ud til at lade dig passere filnavnet til scriptet, hvis du siger myscript.vbs '* f' på valgfri scriptopkald. Citater kan være vigtige, når du overfører filstier, der har mellemrum i mappenavne. Bare husk, hvis du ser ændringshændelser, får du mange af dem, da en fil vokser eller redigeres. Normalt vil du bare have underretning om fil tilføjer eller sletter.


Et andet trick, du kan lave, er at sætte filstørrelsen i en variabel, sove i et par sekunder, og tjek filen igen for at se, om den er ændret. hvis det ikke har ændret sig om få sekunder, kan du normalt antage, hvad der er skabt, det er færdigt at skrive det til disk. Hvis det holder ved med at ændre bare sløjfen, indtil den er stabil.