Похоже, вам нужно ставить скобки вокруг команд, чтобы они выполнялись первыми. Также не забывайте, что $x += 'a'
- это то же самое, что и $x = $x + 'a'
, и вы можете назначить первое значение и добавить второе, не назначая сначала пустую строку, поэтому попробуйте следующее:
$filecontent = Process-Folder -Path "C:\foo"
$filecontent += Process-Folder -Path "C:\bar"
РЕДАКТИРОВАТЬ: я понял, после того как я закончил переписывать код, что я поместил его в форму, где вам больше не нужны парены, поэтому я удалил их. Но выполнение этого полностью потеряло пример, который я использовал, чтобы показать вам, как исправить строки, которые были проблемой для вас раньше (да).
Так что ... нужны скобки при объединении некоторых данных с результатом функции. Вы должны заставить функцию запускаться первой. Таким образом, в исходном формате вам понадобятся следующие символы:
$filecontent = ""
$filecontent = $filecontent + (Process-Folder -Path "C:\foo")
$filecontent + $filecontent + (Process-Folder -Path "C:\bar")
Вы можете прочитать все об этом в этой статье
Для трубы вам нужно установите переменную в вашей функции, которая может принимать входные данные из конвейера. Я думаю эта статья действительно хорошо объясняет, как использовать конвейер, если вы решите пойти по этому маршруту.
Надеюсь, это поможет!