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, 972 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
gelöst Mehrzeiligen Powershell-Befehl mit Batch ausführen (3)

Frage von 133202 zum Thema Batch & Shell ...

Windows Server
Batch Script bei Start ausführen (3)

Frage von KEFHVDI zum Thema Windows Server ...

Batch & Shell
Batch als Dienst bei Systemstart ohne Anmeldung ausführen (6)

Tipp von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
iOS
IPhone wird ferngesteuert Hacker? (21)

Frage von Akcent zum Thema iOS ...

Vmware
VMware ESX - Start einer VM verhindern (19)

Frage von emeriks zum Thema Vmware ...

Netzwerkprotokolle
Fehler bei erneuten Open-VPN Verbindungsaufbau warum bekommt er keine Adresse? (13)

Frage von zeroblue2005 zum Thema Netzwerkprotokolle ...