Ist es möglich in Python ein mehrzeiliges Batch Script einzubetten?
Und wenn ja wie
also bsw sowas wie
echo abc
echo def
als ganzes integriert in ein python script, ausführbar natürlich
Dass ein Python Script ein Batch Script kreiert und ausführt?
Nein, dass der Code eines Batch Scriptes sich im Python Code befindet und ausgeführt werden kann
3 Antworten
Das ist wohl mal wieder einer der Fälle, wenn jemand ein "Auto" gegen ein rostiges Fahrrad tauscht. 🤔🙄
Welche Grund sollte es geben aus Python heraus eine Batch zu erzeugen und diese auszuführen? Batch kann nichts, was man nicht mit Python viel besser realisieren könnte.
Der einzige Grund für ein solches vorgehen, wäre , das man weder Batch noch Python beherrscht und irgendwo Code zusammenkopiert hat, der einigermaßen das tut was man möchte.
Batchcode direkt in Python auszuführen geht nicht. Da eine Batch eine ganz gewöhnliche Textdatei ist kann man eine solche auch per Python schreiben und ausführen.
test.py
import os
MyBatch = """@echo off
echo Hallo Welt
pause"""
my_file = open("demo.cmd", "w")
my_file.write(MyBatch)
my_file.close()
os.system('"demo.cmd"')
Hey, beleidige mein rostiges Fahrrad nicht! Es ist erst 27 Jahre alt und damit fast neu im Vergleich zu Batch.
Du kannst das os-Modul nutzen.
import os
os.system("your batch script ...")
import os
baco="""#!/bin/sh
echo 1
echo 2
"""
with open("irgendwas.sh","w") as f:
f.write(baco)
os.system("chmod +x irgendwas.sh")
os.system("./irgendwas.sh")
(baco → Bash-Code)
Soweit kenn ich das. Aber kann ich hier mehrere Zeilen einbauen?
So nach dem Prinzip
os.system("echo abc
echo def")
ist das ja nicht möglich