HOWTO · Batch

Python-Datei im Batch-Skript ausführen

In diesem Tutorial wird erläutert, wie eine Python-Datei in Batch Script ausgeführt wird.

Auf dieser Seite

Ein Python-Skript aus einer Batchdatei auszuführen, ist eine Windows-Aufgabe: Die Beispiele unten verwenden .bat-Dateien und die Eingabeaufforderung. Sie benötigen einen installierten Python-Interpreter. Sie können den Befehl python verwenden, wenn Windows ihn über PATH findet, oder einen bestimmten Interpreter direkt über python.exe angeben.

Python prüfen und Dateien vorbereiten

Öffnen Sie die Eingabeaufforderung und führen Sie python --version aus. Eine Versionsnummer bedeutet, dass dieser Befehl einen Interpreter findet; sie beweist nicht, dass jede Python-Installation in PATH eingetragen ist. Meldet Windows, dass python nicht erkannt wird, verwenden Sie den unten gezeigten vollständigen Interpreterpfad oder ergänzen Sie PATH um die gewünschte Python-Installation. Bewahren Sie Batchdatei und Python-Skript an einem bekannten Ort auf, damit die Pfade eindeutig sind.

Ein Python-Skript aus einer Batchdatei ausführen

Speichern Sie eine Batchdatei, zum Beispiel run_python.bat, neben hello.py. Der Befehl @echo off blendet die Befehle während der Ausführung aus. pause ist optional: Verwenden Sie den Befehl, wenn Sie die Batchdatei per Doppelklick starten und das Fenster geöffnet bleiben soll. Lassen Sie ihn weg, wenn nach Ende des Skripts ein anderes Programm oder ein Terminal sofort die Kontrolle übernehmen soll.

Ein minimaler Aufruf in einer Batchdatei besteht aus @echo off, gefolgt von python hello.py. Falls die Batchdatei möglicherweise aus einem anderen Arbeitsverzeichnis gestartet wird, verwenden Sie einen Pfad, der sich am Speicherort der Batchdatei orientiert: python "%~dp0hello.py". %~dp0 wird zum Laufwerk und Verzeichnis der Batchdatei erweitert, einschließlich des abschließenden umgekehrten Schrägstrichs.

Einen Python-Interpreter über seinen vollständigen Pfad auswählen

Verwenden Sie einen expliziten Pfad zur ausführbaren Datei, wenn python über PATH nicht verfügbar ist oder die Batchdatei eine bestimmte Installation auswählen muss. Schreiben Sie in die Batchdatei "C:\Program Files\Python312\python.exe" "%~dp0hello.py" und ersetzen Sie den Beispielpfad durch den Speicherort auf Ihrem Computer. Setzen Sie beide Pfade in Anführungszeichen, damit Leerzeichen als Teil des Dateinamens behandelt werden. Prüfen Sie, ob die Pfade zum Interpreter und zum Skript tatsächlich existieren: Auch ein in Anführungszeichen gesetzter, aber falscher Pfad funktioniert nicht.

Argumente an das Python-Skript übergeben

In einer Batchdatei leitet %* alle Argumente weiter, die der Batchdatei übergeben wurden. Zum Beispiel gibt python "%~dp0greet.py" %* sie an greet.py weiter. Rufen Sie die Batchdatei mit Werten in Anführungszeichen auf, wenn diese Leerzeichen enthalten, zum Beispiel mit run_greet.bat "Ada Lovelace". Durch die Anführungszeichen bleibt der Name ein einzelnes Argument.

Das Python-Skript kann diese Werte über sys.argv einlesen. Speichern Sie den folgenden Inhalt als greet.py und rufen Sie das Skript dann über den Batchbefehl oben auf. Wird kein Name übergeben, verwendet das Skript einen Standardwert und lässt sich dadurch auch eigenständig ausführen.

Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.

import sys

name = sys.argv[1] if len(sys.argv) > 1 else "friend"
print(f"Hello, {name}!")
Hello, friend!

Pfade und häufige Ausführungsprobleme behandeln

Wenn die Eingabeaufforderung meldet, dass python nicht erkannt wird, prüfen Sie den Befehl mit python --version und verwenden Sie anschließend den vollständigen Pfad zu python.exe oder korrigieren Sie PATH. Startet Python, kann das Skript aber nicht öffnen, prüfen Sie Dateinamen und Speicherort. %~dp0 ist hilfreich, wenn die Batchdatei ein Skript im selben Verzeichnis unabhängig vom aktuellen Arbeitsverzeichnis finden soll. Enthält ein Pfad Leerzeichen, setzen Sie ihn in doppelte Anführungszeichen. Startet das Skript, meldet aber ein fehlendes Modul, installieren Sie die Abhängigkeit in derselben Python-Umgebung, die von der Batchdatei ausgewählt wird. Diese Befehle verwenden die Windows-Batchsyntax und funktionieren nicht unverändert in den Shells von macOS oder Linux.