Есть ли лучший способ передачи информации в блоки сценариев в where-object
фильтрах сценариев, чем при использовании родительских переменных?
Справочная информация:
У меня есть сценарий, который ищетпроверенные и / или измененные исходные файлы по сравнению с контролем источника и имеет параметр, который позволяет выполнять более полный поиск.Я использую where-object
в нескольких местах с объектом блока сценария, содержащимся в переменной области действия сценария, которую я настраиваю на основе входных параметров сценария.
Итак, если вы попросите провести тщательный поиск, фильтр сравнит файл-кандидат со всеми файлами TFS, чтобы определить, не находится ли файл в системе контроля версий, если вы выберете менее тщательный поиск, фильтрбудет сравниваться только с извлеченными файлами, чтобы увидеть, был ли файл изменен, но не извлечен.
Настраиваемые блоки скрипта ссылаются на переменные в области скрипта, содержащие результаты выполнения запросов к управлению исходным кодом.
Итак, моя проблема в том, что я хотел бы избавиться от глобальной переменной (уровня скрипта) и передать всю необходимую информацию в блоки скрипта в качестве параметров для блоков скрипта.Если бы я использовал invoke-command
, я бы использовал параметр ArgumentList
для этого.Where-Object
, похоже, не имеет этого.Недостатком использования ссылок на переменные родительской области в блоках скрипта является то, что я не могу изменить эти переменные, поэтому я не могу выполнить ленивую инициализацию (или, по крайней мере, я еще не понял, как, не будучи экспертом поОбщие правила для Powershell.)