POWERSHELL: Как запустить pipe-tool в PowerShell? - PullRequest
1 голос
/ 04 августа 2020

Цель:

$: Get-ChildItem -File | ForEach-Object { $_.ToString() }

foo1
foo2

$: Get-ChildItem -File | ..\..\python\modules\foo.py hello-file $_.ToString()

hello, foo1!
hello, foo2!

Версия, которую мне удалось запустить, но не работает:

Get-ChildItem -File | ForEach-Object {..\..\python\modules\foo.py hello-file $_.ToString()}

Эквивалент BASH приведенных выше команд:

# path vars are set
$: ls | xargs -I {} foo.py hello-file {}

hello, foo1!
hello, foo2!

Результат кода PowerShell выше:

Экземпляры CMD windows запущены python открываются и закрываются; на терминал нет вывода.

Как выполнить этот подвиг в PowerShell? Можно ли избежать изменения кода python?

1 Ответ

0 голосов
/ 04 августа 2020

Я не совсем уверен, какова внутренняя работа вашего python файла, но я думаю, вы обнаружите, что это помогает:

Get-ChildItem -File | ForEach-Object { python ..\..\python\modules\foo.py hello-file $_.ToString()}

Добавление слова «python» будет заставляет скрипт запускаться непосредственно в текущей оболочке. Поэтому любая ошибка / результаты будут напечатаны там, где вы их увидите.

Когда я работал без явного ввода «python», отдельный терминал python был открыт и немедленно закрыт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...