Batch-Datei im Script-Verzeichnis ausführen

    Es gibt Gelegenheiten, da möchte man eine Batch-Datei nicht im Kontext des aktuellen Verzeichnisses laufen lassen, sondern dort, wo sie abgelegt wurde. Gründe dafür könnten etwa sein, dass man die Stapeldatei als Administrator startet und nicht will, dass sie in \windows\system32 operiert. Oder sie muss zur Laufzeit eine bestimmte Datei auslesen, die im gleichen Verzeichnis liegt.

    Um zu erreichen, dass das Script in das Verzeichnis wechselt, in dem es gespeichert wurde, gibt es einen einfachen Trick:

    @echo off
    cd /d %~dp0

    Der cd-Befehl mit dem Schalter /d wechselt nicht nur das Verzeichnis, sondern auch das Laufwerk. In diesem Fall wird das Ziel durch den Parameter %~dp0 vorgegeben, das den Pfad der Batch-Datei inklusive Laufwerk enthält, und zwar genau so, wie im Aufruf angegeben. Liegt die Datei im Suchpfad und man gibt daher nur den Dateinamen auf der Kommandozeile ein, dann funktioniert das beschriebene Verfahren nicht.

    2 Kommentare

    Bild von Reto
    Reto sagt:
    17. Mai 2013 - 23:45

    danke dir!

    Bild von ric
    ric sagt:
    29. Januar 2016 - 16:16

    cd /d %~dp0

    danke, war lange am pröbeln, funzt jetzt super