У меня есть большой код PowerShell, который я написал в течение длительного проекта;Эти сценарии выполняют широкий спектр функций, и большинство из них так или иначе зависят от других в рамках проекта.Прямо сейчас, работа состоит из пары файлов, содержащих много функций каждый.Первоначально для работы с этими сценариями все файлы сценариев были случайным образом поставлены в окружающую среду.
Однако недавно я узнал, что в Powershell 2.0 представлены модули, и я хотел бы развернуть эти сценарии вместе.Поскольку все содержимое модуля загружается вместе, я хотел бы разделить мои файлы так, чтобы у каждого скрипта был свой файл, чтобы помочь управлению исходным кодом.Тем не менее, я немного неясен относительно связей между сценариями.
Я провел некоторое тестирование, и кажется, что можно перенести команду Export-ModuleMember для каждой функции в отдельные файлы .ps1;это больше похоже на функции, объявляющие их собственную область видимости, такие как открытая и закрытая область видимости в C #.Однако после этого мой файл .psm1 не содержит ничего, кроме этого:
Get-ChildItem -recurse $psScriptRoot | where { $_.Extension -eq ".ps1" } | foreach { . $_.FullName }
Это кажется правильным?Все сценарии поставляются точечно, и все сценарии ссылаются друг на друга в соответствии с этим предположением.Должны ли они вместо этого ссылаться друг на друга, используя свое местоположение относительно $ psScriptRoot?
Есть ли способ, отличный от обоих этих способов?Кто-нибудь может дать совет?Я пока не очень разбираюсь в этом.