.bat Dateinen in Python ausführen geht nicht
Verfasst: Mittwoch 11. Januar 2023, 15:59
Ich bin auf der Suche nach einer Möglichkeit ein .bat Datei in Python aufzurufen und den Inhalt der .bat Datei laufen zu lassen.
Die .bat Datei alleine läuft ohne Probleme. Sie ruft eine Hex Datei auf und programmiert (jLink von Segger) einen Baustein EFR32.
Auch der Aufruf unter Python geht zwar, aber er findet die .hex Datei nicht mehr die in der .bat Datei aufgerufen wird.
Hier der Ausschnitt des Python Programm mit dem Aufruf der .bat Datei.
# Ausführung der Programmierung Firmware in einer .bat Datei
subprocess.call([r'D:\flash_test.bat'])
Aufbau der .bat Datei die aufgerufen wird. Der Commander ruft die Test-file.hex Datei auf in der der Code für den EFR32 ist. Der "!errorlevel!" soll anzeigen ob die Programmierung Fail/Pass ist und gibt einen Pass Wert von Null an; ansonsten bei Fail eine - Zahl:
@ECHO OFF
setlocal enabledelayedexpansion
commander flash test-file.hex -d EFR32BG22
echo !errorlevel!
IF !errorlevel! NEQ 0 (
goto ExitBatchError
)
:ExitBatchError
IF !errorlevel! NEQ 0 (
echo flash error
EXIT /B
) ELSE (
echo flash ok
)
Hinweis: Ich bin blutiger Anfänger und versuche mich durch viel Probleme durch zu kämpfen. Daher geht von einem Dummy aus.
Die .bat Datei alleine läuft ohne Probleme. Sie ruft eine Hex Datei auf und programmiert (jLink von Segger) einen Baustein EFR32.
Auch der Aufruf unter Python geht zwar, aber er findet die .hex Datei nicht mehr die in der .bat Datei aufgerufen wird.
Hier der Ausschnitt des Python Programm mit dem Aufruf der .bat Datei.
# Ausführung der Programmierung Firmware in einer .bat Datei
subprocess.call([r'D:\flash_test.bat'])
Aufbau der .bat Datei die aufgerufen wird. Der Commander ruft die Test-file.hex Datei auf in der der Code für den EFR32 ist. Der "!errorlevel!" soll anzeigen ob die Programmierung Fail/Pass ist und gibt einen Pass Wert von Null an; ansonsten bei Fail eine - Zahl:
@ECHO OFF
setlocal enabledelayedexpansion
commander flash test-file.hex -d EFR32BG22
echo !errorlevel!
IF !errorlevel! NEQ 0 (
goto ExitBatchError
)
:ExitBatchError
IF !errorlevel! NEQ 0 (
echo flash error
EXIT /B
) ELSE (
echo flash ok
)
Hinweis: Ich bin blutiger Anfänger und versuche mich durch viel Probleme durch zu kämpfen. Daher geht von einem Dummy aus.