Forum: PC-Programmierung Lange Kommandozeile aus Python heraus ausführen


von Dieter (Gast)


Lesenswert?

Moin zusammen,

ich muss auf Python heraus unter Windows eine lange Kommandozeile 
ausführen. Dabei bin ich bin ich auf die Längenbeschränkung von cmd.exe 
gestoßen. Es geht um einen gcc Linker Aufruf. Der kann leider beliebig 
lang werden, wenn mehr Dateien zum Projekt hinzu kommen.

Weiß jemand, wie man so eine lange Kommandozeile am besten ausführen 
kann?

Im Prinzip ist es mir egal, ob ich das über cmd.exe, Powershell, 
irgendeine Bash oder sonstwie ausführe.

von Theor (Gast)


Lesenswert?

Nun, Du kannst ja erstmal die Längenbeschränkungen von ...

> ... cmd.exe, Powershell, irgendeine Bash oder sonstwie ...

testen und sehen ob das ausreicht.

Aber prinzipiell wäre ein make file, eine Möglichkeit, das Problem 
grundsätzlich zu lösen, denke ich.

von Motlib (Gast)


Lesenswert?

Oft kann man Linkern, Compilern, etc. Parameter in einer Textdatei 
übergeben. Manchmal mit der Sytax @Dateiname (z.B. beim gcc). Vielleicht 
unterstützt das dein unbekannter Linker ja auch...

von Bernd K. (prof7bit)


Lesenswert?

Dieter schrieb:
> Weiß jemand, wie man so eine lange Kommandozeile am besten ausführen
> kann?

Hast Du schon versucht den Prozess nicht über cmd.exe zu starten sondern 
direkt? Die Argumente übergibst Du dann als array. Dann gibts gar keine 
Kommandozeile in dem Sinne.

von imonbln (Gast)


Lesenswert?

Dieter schrieb:
> ich muss auf Python heraus unter Windows eine lange Kommandozeile
> ausführen. Dabei bin ich bin ich auf die Längenbeschränkung von cmd.exe
> gestoßen. Es geht um einen gcc Linker Aufruf. Der kann leider beliebig
> lang werden, wenn mehr Dateien zum Projekt hinzu kommen.

unter Python ist subprocess.Popen & Co dein freund für so was, von 
Mircosoft gibt es auch vorschlagt für einen workaround.

https://support.microsoft.com/en-us/help/830473/command-prompt-cmd-exe-command-line-string-limitation

Dein Linker Problem klingt für mich so, das ich erstmals Reflex mäßig 
Linkerscript sagen würde. Allerdings sagst du nicht was deine vielen 
Parameter sind und daher könnte dass ein roter Hering sein. Aber 
vielleicht siehst du dir das mal an und hast damit eine Möglichkeit 
etwas Bequemlichkeit zu erreichen.

von Klaus (Gast)


Lesenswert?

Dieter schrieb:
> Es geht um einen gcc Linker Aufruf.

Motlib schrieb:
> (z.B. beim gcc). Vielleicht
> unterstützt das dein unbekannter Linker ja auch...

???

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.