我是一个菜鸟,有上进心的程序员,并且一直在研究使用Python脚本运行Powershell文件的方法,该文件将复制并成像并将图像放入Excel。
我使用了subprocess
,call
和Popen
命令,试图从Python脚本调用和运行Powershell程序,但是没有一个起作用。
我发现某些示例仅调用了Powershell脚本的不同功能,但是当我尝试这些设置时,它不适用于我的程序。我的Powershell的所有设置均已建立,以便可以在我的PC上运行,并且在独立于Python启动时也可以正常运行。
我想问的是例如我是否有一个My_program.py
文件和一个Moving_image.ps1
文件。我想使用我的.py
文件来运行/执行我的.ps1
文件,而两个程序都位于同一路径(C:\Users\Scripts
)中。
要在Python文件中仅运行来自Python脚本的独立.ps1
文件,我需要在哪行代码,导入和其他程序设置?
我不需要Powershell脚本将任何内容返回给Python脚本。我希望它仅运行复制并粘贴我发送的命令。
谢谢。我们将不胜感激能使该程序真正正常运行的任何类型的指导!
答案 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