2016-10-17 6 views
0

Я хочу построить сценарий PowerShell для вызова Python3. Теперь в оболочке это будет довольно простой, но я не могу показаться, чтобы получить следующие преобразованы в PS:Выполнение программы с аргументами

../py/python3 myscript.py [email protected] 

я потерял где-то в лабиринте Start-Process, get-item, путь строительства, ... Есть ли ЛЕГКО способ сделать это в PowerShell?

ответ

1

PowerShell представляет собой оболочку, так что по большей части, запуск программ является то, что он делает хорошо. Я предполагаю, что вы конвертируете скрипт оболочки Unix, из которого исходит [email protected]. Эквивалент в PowerShell для этого, вероятно, будет $args или @args:

../py/python3 myscript.py $args 

В скрипте $args содержит аргументы этого сценария. Тем не менее, внутри блока или функции скрипта он будет содержать аргументы этого блока или функции сценария, поэтому будьте осторожны при абстрагировании вещей в вашем скрипте.

-2

Invoke-выражение -command "../py/python3 myscript.py" $ @

+0

Это дает мне: 'Invoke-Expression: не найден позиционный параметр, который принимает аргумент '$ @'' – abergmeier

+0

Прежде всего, это неправильно, как отмечает @abergmeier. Во-вторых, нет экземпляра проблемы с запуском программы из PowerShell, которую вы создаете _better_, используя 'iex'. Вы только накладываете на него другие проблемы. – Joey