Warum kann subprocess keine Windows-Variablen wie z.B. %WINDIR% verarbeiten?
Oder mache ich etwas falsch?
z.B. funktioniert folgender Code nicht:
Code: Alles auswählen
subprocess.Popen("%WINDIR%\notepad.exe")
Code: Alles auswählen
subprocess.Popen("%WINDIR%\notepad.exe")
Weil subprocess keine Shell ist und daher Umgebungsvariablen nicht selbstständig auflöst?HarryH hat geschrieben:Warum kann subprocess keine Windows-Variablen wie z.B. %WINDIR% verarbeiten?
Davon Abgesehen, dass du esl als Raw-String maskieren müsstest, also r"%WINDIR%\notepad.exe", da sonst das \n als Zeilenumbruch interpretiert wird, löst subprocess in der Standardeinstellung Variablen nicht auf.HarryH hat geschrieben:Oder mache ich etwas falsch?
z.B. funktioniert folgender Code nicht:Code: Alles auswählen
subprocess.Popen("%WINDIR%\notepad.exe")
Code: Alles auswählen
import os, subprocess
# %WINDIR% ausgeben
print os.environ['WINDIR']
# oder direkt starten
subprocess.Popen('notepad.exe')
# oder Shell dazuwischenschalten um Variablen aufzulösen
subprocess.Popen(r'%WINDIR%\notepad.exe', shell=True)