Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Vbscript batch bei änderung ausführen

Frage Entwicklung VB for Applications

Mitglied: chgs2011

chgs2011 (Level 1) - Jetzt verbinden

25.09.2014 um 13:52 Uhr, 948 Aufrufe, 1 Kommentar

Hallo,

ich habe ein Batch-File, das mir einige Arbeiten erleichtert.

Ich möchte aber das Batch-File nicht im Minutentakt antriggern, sondern soll erst angetriggert werden, sobald sich die Datei XYZ ändert. Wie es mir scheint, klappt das mit Batch alleine nicht, ich muss das über VBScript lösen.

Kennt jemand eine Lösung, um eine Dateiänderung zu erfassen, um das Batch anzutriggern?

Danke
Mitglied: colinardo
25.09.2014, aktualisiert um 15:15 Uhr
Moin chgs2011,
kein Problem:
(Zur Erläuterung wie das Script zu handhaben ist, gibt es am Anfang eine Meldung via MsgBox aus, die du wenn du die Handhabung verstanden hast, entfernen kannst)

WICHTIG: Das Script kann nur lokale Laufwerke überwachen. D.h wenn man eine Datei im Netz überwachen möchte, muss der Pfad als Laufwerk gemappt sein, und der Pfad mit dem Laufwerksbuchstaben angegeben werden.
01.
'Pfad der zu überwachen ist 
02.
strFile = "D:\Daten\datei.csv" 
03.
' Auszuführende Batch 
04.
strBatch = "C:\Pfad\deineBatch.cmd"  
05.
'Abfrage der aufgelaufenen Events in Sekunden 
06.
intInterval = 2 
07.
'------------------------------ 
08.
MsgBox "Das Programm überwacht nach klicken auf OK die Datei: '" & strFile & "' alle " & intInterval & " Sekunden auf aufgelaufene Änderungen'" & vbNewLine & "(Um das Programm zu beenden muss der Prozess 'wscript.exe' im Taskmanager beendet werden)",vbInformation 
09.
'Objekte erzeugen 
10.
Set fso = WScript.CreateObject("Scripting.Filesystemobject") 
11.
Set objShell = CreateObject("Wscript.Shell") 
12.
Set objWMIService = GetObject( "winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2" ) 
13.
 
14.
'Backslashes im Pfad für WQL Query verdoppeln 
15.
strFilePath = Replace(strFile,"\","\\") 
16.
 
17.
'WQL Query erzeugen 
18.
strQuery = "Select * From __InstanceModificationEvent" _ 
19.
    & " Within " & intInterval _ 
20.
    & " Where Targetinstance Isa 'CIM_DataFile'" _ 
21.
    & " And TargetInstance.Name='" & strFilePath & "'" 
22.
'Eventsink registrieren 
23.
Set colEvents = objWMIService.ExecNotificationQuery (strQuery)  
24.
 
25.
'Auf Änderungen warten 
26.
Do  
27.
	Set objEvent = colEvents.NextEvent() 
28.
    Set objTargetInst = objEvent.TargetInstance 
29.
    'Bei Bedarf lässt sich hier auf die Eigenschaften der Datei zugreifen 
30.
    'die möglichen Eigenschaften kann man hier nachlesen:  
31.
    ' http://msdn.microsoft.com/en-us/library/aa387236%28v=vs.85%29.aspx 
32.
    ' Beispiel Dateigröße: objTargetInst.FileSize 
33.
 
34.
    On Error Resume Next 
35.
 
36.
    'Bei Dateiänderung Batch aufrufen ------------------- 
37.
    objShell.Run "cmd /c """ & strBatch & """" 
38.
    '----------------------------------------------------- 
39.
Loop
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch als Dienst bei Systemstart ohne Anmeldung ausführen (5)

Tipp von tralveller zum Thema Batch & Shell ...

Batch & Shell
gelöst VPN per Batch o.ä. einrichten (3)

Frage von peterpa zum Thema Batch & Shell ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Router & Routing
über Vmware auf eine FritzBox mit IPv6 per VPN (17)

Frage von Zockervogel zum Thema Router & Routing ...

Basic
Programmierung von Windows Programmen (9)

Frage von Ghost108 zum Thema Basic ...

Voice over IP
VoIP und DECT an Fritz Accesspoint (7)

Frage von Katosix zum Thema Voice over IP ...