首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PowerShell脚本中运行Python

在PowerShell脚本中运行Python
EN

Stack Overflow用户
提问于 2014-06-16 23:01:20
回答 3查看 2.6K关注 0票数 2

我有一个Python脚本,我想运行一个PowerShell cmdlet。我在网上看过,我唯一能找到的就是运行PowerShell脚本,但我觉得编写一个cmdlet到一个脚本,然后点源代码执行它会花费比需要的时间长得多的时间。

我尝试过通过以下方式使用subprocess.Popen:

代码语言:javascript
复制
cmd = subprocess.Popen(['C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe', ps_cmdlet])

但是ps_cmdlet是一个python字符串变量,它的值是powershell cmdlet。所以,很明显我得到了一个“没有这样的文件或目录”的错误。有没有办法在python脚本中运行powershell cmdlet而不使用IronPython之类的东西?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2019-04-25 13:00:54

这样做效果很好

代码语言:javascript
复制
import subprocess
pl = subprocess.Popen(['powershell', 'get-process'], stdout=subprocess.PIPE).communicate()[0]
print(pl.decode('utf-8'))
票数 3
EN

Stack Overflow用户

发布于 2014-06-16 23:04:47

尝试执行以下操作(ps_cmdlet是python字符串):

代码语言:javascript
复制
subprocess.call(ps_cmdlet)

编辑:下面是一个将机器的ip配置输出到Powershell的示例:

代码语言:javascript
复制
ps_cmdlet = 'ipconfig'
subprocess.call(ps_cmdlet)

另一种编辑:另一种对我有效的方式是:

代码语言:javascript
复制
ps_cmdlet = 'whatever command you would enter in powershell'
p = subprocess.Popen(ps_cmdlet,stdout=subprocess.PIPE)
p.communicate()
票数 0
EN

Stack Overflow用户

发布于 2018-11-26 13:17:55

代码语言:javascript
复制
import subprocess
process = subprocess.Popen([r"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe", "get-process"],
                           shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
process_output = process.read().splitlines()

上面的脚本将有助于从Python执行PS Cmdlet。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24246657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档