Skript automatisch starten wenn eine neue Datei in einem Ordner erstellt wird
Hallo,
ich bin hier neu, und hab ein hoffentlich kleines Problem.
Folgendes. Ich lade für Tests eine Datei auf einen internen TFTP-Server auf einen Windows 2003 Server. Das heist die Datei landet in einen ganz normalen Ordner.
Ich möchte jetzt wenn die Datei in dem Ordner landet automatisch ein Skript starten. Dieses Skript (viel mehr eine Batchdatei) macht dann einiges mit der Datei und fertig.
Mir gehts jetzt nur darum wie bringe ich Windows dazu den Ordner zu überwachen und dann das Skript zu starten.
Egal ob das mit Bordmittel, PERL, WSH oder ähnlichen funktioniert. Bitte schreibt mir.
Danke
Gruß
Werner
ich bin hier neu, und hab ein hoffentlich kleines Problem.
Folgendes. Ich lade für Tests eine Datei auf einen internen TFTP-Server auf einen Windows 2003 Server. Das heist die Datei landet in einen ganz normalen Ordner.
Ich möchte jetzt wenn die Datei in dem Ordner landet automatisch ein Skript starten. Dieses Skript (viel mehr eine Batchdatei) macht dann einiges mit der Datei und fertig.
Mir gehts jetzt nur darum wie bringe ich Windows dazu den Ordner zu überwachen und dann das Skript zu starten.
Egal ob das mit Bordmittel, PERL, WSH oder ähnlichen funktioniert. Bitte schreibt mir.
Danke
Gruß
Werner
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 20309
Url: https://administrator.de/contentid/20309
Ausgedruckt am: 15.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo..
Ich kenne nur eine unschöne Lösung.
Per Cronjob ein PHP Script ausführen, der die neuste Datei Ausführt.
Script zum zählen und ausführen von Dateien durch PHP findest du per google.
Aber warscheinlich gibt es eine wesentlich schönere und einfachere Lösung.
Gruß
Aaron
Ich kenne nur eine unschöne Lösung.
Per Cronjob ein PHP Script ausführen, der die neuste Datei Ausführt.
Script zum zählen und ausführen von Dateien durch PHP findest du per google.
Aber warscheinlich gibt es eine wesentlich schönere und einfachere Lösung.
Gruß
Aaron
Davon ausgehend das es ein Windows Server ist erstellst Du irgendwo ein Script mit ungefähr folgendem INhalt:
snip -----
Dim fso
Set fso = createobject("scripting.filesystemobject")
Set Folder = fso.GetFolder("C:\tftp") ' hier die root zu deinem tftp verzeichnis eintragen
Set FileList = Folder.Files
For each File in FileList
Dim WshShell, oExec, exeString
Set WshShell = CreateObject("WScript.Shell")
exeString = "Meine_Batch.bat " & File.name
MsgBox(exeString)
' Set oExec = WshShell.Exec(exeString)
WshShell.run exeString
Next
snap -----
Und in Meine_Batch.bat solle dann drinstehen was auch immer Du machen möchtest.
z.B.:
type %1
pause
oder
move %1 nach irgendwo ....
Dann brauchst Du nur noch einen task der alle xxx Minuten das script aufruft und fertig.
Aber daran denken das Du die files verschiebst sonst werden die bei jeden Aufruf durchgeackert.
hth
Xaazh
snip -----
Dim fso
Set fso = createobject("scripting.filesystemobject")
Set Folder = fso.GetFolder("C:\tftp") ' hier die root zu deinem tftp verzeichnis eintragen
Set FileList = Folder.Files
For each File in FileList
Dim WshShell, oExec, exeString
Set WshShell = CreateObject("WScript.Shell")
exeString = "Meine_Batch.bat " & File.name
MsgBox(exeString)
' Set oExec = WshShell.Exec(exeString)
WshShell.run exeString
Next
snap -----
Und in Meine_Batch.bat solle dann drinstehen was auch immer Du machen möchtest.
z.B.:
type %1
pause
oder
move %1 nach irgendwo ....
Dann brauchst Du nur noch einen task der alle xxx Minuten das script aufruft und fertig.
Aber daran denken das Du die files verschiebst sonst werden die bei jeden Aufruf durchgeackert.
hth
Xaazh