Kategorien
Development

[HOWTO] Das Fenster einer ausgeführten Batch-Datei verstecken (Cronjob)

Um das Fenster einer Batch-Datei zu verstecken bzw. um eine Batch Datei im Hintergrund auszuführen, benötigt man eine kleine VBScript Datei, die das Verstecken des Fensters übernimmt.
Eine Anwendungsfall hierfür wäre zum Beispiel das Ausführen eines Cronjobs auf einer lokalen PHP Entwicklungsumgebung mit einem „XAMPP-Server“.
Zunächst wird die Batch-Datei erstellt, die das PHP-Skript über die „php-win.exe“ des Servers aufruft. Ich nenne sie einfach mal „cron.bat“ mit folgendem Inhalt:

X:\[PFAD-ZUR-PHP-WIN.EXE]\php-win.exe X:\[PFAD-ZUR-PHP-DATEI-DIE-AUSGEFÜHRT-WERDEN-SOLL]\jobs.php

Als nächstes braucht man noch die VBScript Datei, um das Fenster der Batch-Datei zu verstecken. Ich nenne sie „hidden.vbs“ und der Inhalt sieht wie folgt aus:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

Wenn man jetzt unter „START -> Ausführen“ folgendes eingibt, wird die Batch-Datei ausgeführt aber ohne, dass man ein Fenster sieht:

wscript.exe "X:\[PFAD-ZUR-HIDDEN.VBS]\hidden.vbs" "X:\[PFAD-ZUR-BATCH-DATEI]\cron.bat"

Diesen Befehl kann man jetzt zum Beispiel als „Geplante Task“ in Windows alle 5 Minuten ausführen lassen und erreicht dadurch eine in meinen Augen einfache Cronjob-Lösung für eine lokale Entwicklungsumgebung ohne zusätzliche Software.