CMD-Befehlsumleitung (Pipes) in Verknüpfung / Link unter Windows 7?

1

Ich möchte ein Python 3-Skript unbeaufsichtigt beim Systemstart mithilfe einer Verknüpfung (.lnk) in Autostart ausführen.

Pythons pythonw.exe wird mit meinem Skript nur dann als fensterloser Prozess ausgeführt, wenn stdout und stderr irgendwo weitergeleitet werden, z pythonw script.pyw >nul 2>&1. Dies funktioniert mit CMD.

Es funktioniert nicht, wenn es als Windows-Linkziel angegeben wird. Diese wird automatisch auf erweitert c:\Python34\pythonw.exe script.pyw >nul 2>&1. Doppelte Anführungszeichen um den Befehl werden automatisch entfernt. Der Prozess pythonw.exe wird nur kurz ausgeführt, wenn der Link ausgeführt wird.

Griff
quelle

Antworten:

2

Ich muss damit arbeiten

C:\Windows\system32\CMD.exe /C start /B pythonw.exe script.pyw >nul 2>&1

Beim Ausführen wird das CMD-Fenster kurz angezeigt. Es scheint, dass die CMD-Pipe-Operatoren nicht vom Windows-Link "Mechanismus" interpretiert, sondern als Argumente / Optionen an das Programm gesendet werden. Dies wird behoben, indem CMD tatsächlich mit / C ausgeführt wird, um den START-Befehl zum Ausführen von pythonw als separaten Prozess zu übergeben.

Weitere Lektüre:

Griff
quelle