В PowerShell вы можете изменить имя переменной, используемой в качестве элемента в итеративном блоке, например:
dir -recurse *.snippet -OutVariable snippets
$snippets | Where-Object -PipelineVariable fn { $fn.Length -ge 6000 } | select FullName
Этот код не работает, но вы поняли идею. Я думаю, что это не работает, потому что аргумент -PipelineVariable
должен быть указан в предыдущем CmdLet.
У меня вопрос, какой CmdLet я использую для передачи содержимого $snippets
?
то есть, когда я просто запускаю $snippets
он неявно выбрасывает содержимое в конвейер, но что делает CmdLet?
Я пробовал многие, и многие, кажется, выводят массив на экран, но когда он передан в Where-Object
предложение where не работает, это похоже на просмотр экземпляра объекта внешнего массива, а не каждого элемента.
Люк