2017-04-18 163 views
-1

我需要从Windows上的python代码运行PowerShell脚本。我已经安装了python,并且已经设置了环境变量。从python代码运行PowerShell脚本

我也试过subprocess.call,但没有任何工作适合我。我得到的错误:

io.UnsupportedOperation: fileno

Python代码

import subprocess , sys 

p = subprocess.Popen 
(["C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "C:\\Users\\Desktop\\test.ps1"]) 
p.communicate() 

PowerShell的test.ps1

Write-Host ("swan is awesome") 
New-Item -ItemType Directory -Path "xxxx" 
+1

你需要详细说明“没什么工作” – jordanm

+0

你可以用'check_output'而不是'Popen'来尝试吗?在这种情况下,这将得到你输出作为返回值,而不是过程(你不需要),如果它不能正常工作,例外 –

+0

我试过check_output,显示错误subprocess.CalledProcessError – swan

回答

0

你没有捕捉程序输出,而spawing你一个新的进程可以给这样的东西subprocess([],stdout=sys.stdout)