Запуск скриптов `ps1` без указания исполнителяPython

Программы на Python
Anonymous
Запуск скриптов `ps1` без указания исполнителя

Сообщение Anonymous »

В Python мы можем использовать подпроцесс для запуска bat () изначально, например

Код: Выделить всё

import subprocess as sp
sp.run(["D:/Temp/hello.bat"])
работает нормально. Однако он не может запускать сценарии ps1, например

Код: Выделить всё

import subprocess as sp
sp.run(["D:/Temp/hello.ps1"])
приведет к возникновению ошибки «WinError 193: %1 не является допустимым приложением Win32».
Я думал, что это произошло из-за того, что .PS1< /code> не отображался в PATHEXT и добавил его туда, но снова не удалось. Я также попробовал способ, указанный в этом ответе, который, похоже, устанавливает политику выполнения файлов, но он все равно не работает.
Я знаю, что это сработает, если я добавлю исполнителя в вызов, например sp.run(["pwsh", "D:/Temp/hello.ps1"]) или используйте скрипт bat в качестве промежуточного варианта, но это нежелательно, я использую программу, которая плохо перенесена с *nix на Windows, и она просто вызывает все, что я предоставил, как один исполняемый файл (в *nix мы можем использовать shebang). , но не в Windows).

Подробнее здесь: https://stackoverflow.com/questions/788 ... e-executor

Вернуться в «Python»