[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.

Subdomains in lokaler Entwicklungsumgebung

Heute wollte ich auf meiner lokalen Entwicklungsumgebung die unter http://minibox/ erreichbar ist eine Subdomain a la http://subdomain.minibox/ einrichten, um bei der lokalen Entwicklung eine Serverumgebung zu simulieren, in der sich die Webseite nicht in einem Unterverzeichnis (http://minibox/subdomain/) befindet, sondern in der obersten Ebene des Webservers. Zunächst hatte ich einige Probleme bei der Konfiguaration aber nach ein wenig “Googlei” habe ich nun die Lösung für die Einrichtung von Subdomains innerhalb einer lokalen Entwicklungsumgebung gefunden.

Meine Konfiguration:
Windows XP
XAMPP mit Apache2
lokale Adresse des Servers: http://minibox/
IP Adresse des Servers: 192.168.1.100
Document Root des Apache: D:\lokal_dev

Zunächst muss man die Datei “httpd-vhosts.conf” in “X:\xampp\apache\conf\extra” bearbeiten.
Dort entfernt man die “#” vor “# NameVirtualHost *:80″.
Danach fügt man folgende Einträge am Ende der Datei hinzu:


  ServerAdmin admin@minibox
  DocumentRoot D:/local_dev/
  ServerName minibox
  ServerAlias minibox
  ErrorLog logs/error.log
  CustomLog logs/access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  



  ServerAdmin polarwind@minibox
  DocumentRoot D:/local_dev/polarwind/
  ServerName polarwind.minibox
  ServerAlias polarwind.minibox
  ErrorLog logs/polarwind-error.log
  CustomLog logs/polarwind-access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  

Das 1. VirtualHost ist die Konfiguration für die Domain “http://minibox/“. Dort steht als “DocumentRoot D:/local_dev/“. Dieser Eintrag muss mit dem aus der “httpd.conf” übereinstimmen. Als ServerName und Alias sind jeweils “minibox” eingetragen, da ich den Server über diesen Namen erreichen will.

Das 2. VirtualHost ist die Konfiguration für die Subdomain “http://polarwind.minibox/“. Hier ist das “DocumentRoot D:/local_dev/polarwind“. Also das Verzeichnis, in dem die Dateien für liegen, die über die Subdomain abrufbar sein sollen. Als ServerName und Alias stehen hier “polarwind.minibox“. Dadurch können die Inhalte aus dem DocumentRoot über “http://polarwind.minibox/” aufgerufen werden.

Nun muss noch eine weitere Datei bearbeitet werden. Und zwar die Datei “hosts“. Sie liegt bei Windows XP in “C:\WINDOWS\system32\drivers\etc“. Dort können IP Adressen mit Hostnamen verbunden werden. In meinem Beispiel trage ich eine neue Zeile ein:

192.168.1.100        minibox        polarwind.minibox

“192.168.1.100” ist die lokale IP Adresse meines Computers. Über diese IP Adresse sind die Hostnamen minibox und polarwind.minibox nun erreichbar. Somit kann ich im Browser beispielsweise polarwind.minibox eingeben und bekomme den Inhalt des vorher definierten VirtualHosts angezeigt.

Ich hoffe, dass ich mit dieser Anleitung dem ein oder anderen helfen konnte!