使用Python脚本运行完整的独立Powershell脚本

时间:2018-08-12 03:59:38

标签: python powershell

我是一个菜鸟,有上进心的程序员,并且一直在研究使用Python脚本运行Powershell文件的方法,该文件将复制并成像并将图像放入Excel。

我使用了subprocesscallPopen命令,试图从Python脚本调用和运行Powershell程序,但是没有一个起作用。

我发现某些示例仅调用了Powershell脚本的不同功能,但是当我尝试这些设置时,它不适用于我的程序。我的Powershell的所有设置均已建立,以便可以在我的PC上运行,并且在独立于Python启动时也可以正常运行。

我想问的是例如我是否有一个My_program.py文件和一个Moving_image.ps1文件。我想使用我的.py文件来运行/执行我的.ps1文件,而两个程序都位于同一路径(C:\Users\Scripts)中。

要在Python文件中仅运行来自Python脚本的独立.ps1文件,我需要在哪行代码,导入和其他程序设置?

我不需要Powershell脚本将任何内容返回给Python脚本。我希望它仅运行复制并粘贴我发送的命令。

谢谢。我们将不胜感激能使该程序真正正常运行的任何类型的指导!

1 个答案:

答案 0 :(得分:1)

这是对我有用的东西(在Linux上测试):

python脚本test.py

from subprocess import call
call(["/opt/microsoft/powershell/6.0.4/pwsh", "./test.ps1"])

powershell脚本test.ps1

Import-Module '/home/veefu/pwshmodules/testMod'
Write-Output "Hello from test.ps1"
Get-HelloWorld

testMod.psm1模块,存储在/ home / veefu / pwshmodules / testMod

function Get-HelloWorld {
    Write-Output "Hello World (from Module)"
}

运行python脚本时的结果:

Hello from test.ps1
Hello World (from Module)

在Windows上,您可能必须提供完整的路径C:\Windows\system32\MicrosoftPowerShell\1.0\powershell.exe,并且可能必须在第二个参数中将/file .\yourOtherScript.ps1传递给call