pkiwerner
Goto Top

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

Content-ID: 20309

Url: https://administrator.de/contentid/20309

Ausgedruckt am: 15.11.2024 um 05:11 Uhr

20728
20728 26.11.2005 um 23:04:30 Uhr
Goto Top
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
Xaazh
Xaazh 28.11.2005 um 15:24:56 Uhr
Goto Top
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