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, 940 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
Windows Server
Batch Script bei Start ausführen (3)

Frage von KEFHVDI zum Thema Windows Server ...

Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (30)

Frage von Datsspeed zum Thema Exchange Server ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (22)

Frage von Oldschool zum Thema Router & Routing ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...