В общем, я знаю, как записать вывод команды в переменную в Powershell:
> $output = python3 --version
> Write-Host $output
Python 3.7.0
Python 3 печатает свою версию, но она записывается в переменную $output
, и на консоли ничего не отображается. Как и ожидалось:
> $output = python3 --version
> Write-Host $output
Python 3.7.0
Но в случае с Python 2 это не работает. Python 2 печатает свою версию, но она отображается на консоли вместо захваченной, а переменная $output
пуста.
> $output = python2 --version
Python 2.7.15
> Write-Host $output
>
Я пробовал несколько альтернативных синтаксисов, но пока ничего не помогло:
> $output = (python2 --version) # use a subcommand
Python 2.7.15
> $output = "$(python2 --version)" # enclose the subcommand into a string
Python 2.7.15
Если я использую его в Write-Command
, результат будет выглядеть следующим образом:
> Write-Host "Python version: $(python2 --version)"
Python 2.7.15
Python version:
>
Как Python 2 печатает свою версию, что она не записана в переменную и возможно ли ее захватить в любом случае?