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, 921 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

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

Frage von KEFHVDI zum Thema Windows Server ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...