%20%D0%B2%20%D1%8F%D1%80%D0%BB%D1%8B%D0%BA%D0%B5%2F%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5%20%D0%B2%20Windows%207%3F.png)
Я хотел бы запустить скрипт Python 3 автоматически при запуске системы, используя ярлык/ссылку (.lnk) в автозапуске.
Python's pythonw.exe будет работать как безоконный процесс с моим скриптом только если куда-то перенаправить stdout и stderr, например pythonw script.pyw >nul 2>&1
. Это работает из CMD.
Не работает, если указано как цель ссылки Windows. Это автоматически расширяется до c:\Python34\pythonw.exe script.pyw >nul 2>&1
. Двойные кавычки вокруг команды удаляются автоматически. Процесс pythonw.exe выполняется только на короткое время при запуске ссылки.
решение1
Я заставил это работать с
C:\Windows\system32\CMD.exe /C start /B pythonw.exe script.pyw >nul 2>&1
При запуске на короткое время отображается окно CMD. Похоже, что операторы CMD pipe не интерпретируются "механизмом" ссылок Windows, а отправляются в программу как аргументы/опции. Это решается фактическим запуском CMD с /C для передачи команды START для запуска pythonw как отдельного процесса.
Дальнейшее чтение:
- http://ss64.com/nt/cmd.html- Запустите новую оболочку CMD и (опционально) запустите команду/исполняемую программу.
- http://ss64.com/nt/start.html- Запустить программу, команду или пакетный скрипт (откроется в новом окне.)
- http://ss64.com/nt/syntax-redirection.html