0

考虑下面的简单 python 程序,它运行一个 powershell 脚本。如果我从命令行启动 python 程序,它工作正常,即使我觉得它为返回值打印一个空行而不是 0 很奇怪。但是,如果我从 pydev 运行这个 python 程序,脚本在调用subprocess.call(). 我在 Windows 7 下的 Eclipse SDK 4.2.1 下使用 Pydev 2.7.0。Python 版本是 2.7.3。

import subprocess

def run_powershell_script(script):
    cmd = ['powershell',
         '-ExecutionPolicy',
         'RemoteSigned',
         '-File',
         script]
    returncode = subprocess.call(cmd) 
    print "Done"
    return returncode

if __name__ == "__main__":
    print run_powershell_script("testscript.ps1")

我正在测试的 powershell 脚本非常简单:它打印路径然后返回 0:

Write-Host "$env:Path"
exit 0

所以回顾一下,我想我有两个问题,最重要的是为什么subprocess.call()当我在 pydev 下运行这个程序时会挂起,另一个问题是为什么当我打印时returncode我得到一个空行而不是 0。

4

1 回答 1

1

我不是100%在这里,但不exit只是杀死脚本吗?要在退出脚本时返回一个值,请使用return.. 所以试试这个 PS 脚本:

Write-Host "$env:Path"
return 0
于 2013-01-17T21:16:01.620 回答