用于检查Python是否已安装的Powershell脚本

时间:2016-04-30 10:35:39

标签: python powershell

我正在尝试通过Powershell脚本检查Python是否安装在计算机上。

到目前为止,我的想法是运行以下内容:

$p = iex 'python -V'

如果命令正确执行(检查Exitcode属性上的$p),请阅读输出并提取版本号。

但是,在Powershell ISE中执行脚本时,我很难捕获输出。它返回以下内容:

python : Python 2.7.11
At line:1 char:1
+ python -V
+ ~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Python 2.7.11:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

有人能指出正确的方向吗?

干杯, Prabu

1 个答案:

答案 0 :(得分:3)

似乎python -V将版本字符串输出到stderr而不是stdout

您可以使用流重定向器将错误重定向到标准输出:

# redirect stderr into stdout
$p = &{python -V} 2>&1
# check if an ErrorRecord was returned
$version = if($p -is [System.Management.Automation.ErrorRecord])
{
    # grab the version string from the error message
    $p.Exception.Message
}
else 
{
    # otherwise return as is
    $p
}

如果您确定您的系统上的所有python版本都会以这种方式运行,那么您可以将其缩减为:

$version = (&{python -V}).Exception.Message