#powershell #powershell-3.0
#powershell #powershell-3.0
Вопрос:
Я хочу создать сценарий PowerShell для вызова Python3. Теперь в оболочке это было бы довольно просто, но, похоже, я не могу преобразовать следующее в PS:
../py/python3 myscript.py $@
Я заблудился где-то в лабиринте Start-Process
, get-item
, построения пути, …
Есть ли какой-нибудь ПРОСТОЙ способ сделать это в PowerShell?
Ответ №1:
PowerShell — это оболочка, поэтому по большей части запуск программ — это то, что она делает хорошо. Я предполагаю, что вы конвертируете сценарий оболочки Unix, который откуда $@
берется. Эквивалентом в PowerShell для этого, вероятно, будет $args
или @args
:
../py/python3 myscript.py $args
Внутри скрипта $args
содержит аргументы для этого скрипта. Однако внутри блока сценария или функции он будет содержать аргументы для этого блока сценария или функции, поэтому будьте осторожны при абстрагировании элементов в вашем сценарии.
Ответ №2:
вызвать-выражение -команду «../py/python3 myscript.py » $@
Комментарии:
1. Это дает мне:
Invoke-Expression : A positional parameter cannot be found that accepts argument '$@'
2. Прежде всего, это неправильно, как отмечает @abergmeier. Во-вторых, не существует случая проблемы с запуском программы из PowerShell, которую вы улучшаете , используя
iex
. Вы только накладываете на нее другие проблемы.