PowerShell - «Выражения разрешены только как первый элемент трубопровода»
-
21-12-2019 - |
Вопрос
Может ли кто-нибудь сказать мне, как избежать этой ошибки в нижестоящем обстоятельствах?
$codegenDir = "Z:\Desktop\Song-Renamer"
$PowerShellRepresentation = dir -path $MyMusicFolder -recurse -include *.mp3,*.m4a,*.wma,*.flac,*.ape | select -ExpandProperty FullName | $codegenDir\codegen.exe -s 10 20 | Out-String | ConvertFrom-Json
.
Что полностью озадачивает мне, если просто опустить $ Codegendir (см. Ниже), код работает правильно.Я «думаю», я понимаю концепцию размещения выражения сначала (впереди других предметов в трубопроводе. Но я не уверен, как переставить / разделить этот код, так что выражение в вопросе Codegen.exe Внешняя командная линия / EM> - первый элемент в трубопроводе (и все еще сможет передавать данные к ней через трубопровод).
$PowerShellRepresentation = dir -path $MyMusicFolder -recurse -include *.mp3,*.m4a,*.wma,*.flac,*.ape | select -ExpandProperty FullName | .\codegen.exe -s 10 20 | Out-String | ConvertFrom-Json
.
В идеале было бы неплохо сделать это, используя наименьшее количество кода.
Решение
Дайте следующий выстрел (только разница - это и):
$PowerShellRepresentation = dir -path $MyMusicFolder -recurse -include *.mp3,*.m4a,*.wma,*.flac,*.ape | select -ExpandProperty FullName | & $codegenDir\codegen.exe -s 10 20 | Out-String | ConvertFrom-Json
.
Вот Ссылка Статья Technet о выполнении команд в PowerShell по-разному.
Не связан с StackOverflow