Я пытаюсь найти общий способ получения имени и пути скрипта при импорте модуля.У меня есть три проблемы, и я не смог понять, как заставить основной работать.Вот мой код теста1) Import-Module из командной строки, callstack возвращает <ScriptBlock
>
callstack = ModuleGroup.psm1; <ScriptBlock>
ScriptName =
PSScriptRoot =
PSCommandPath =
Location = D:\Powershell
Done...
2) Скрипт с использованием Import-Module возвращает полное MyInvocation information
callstack = ModuleTest.psm1; Test.ps1
ScriptName = **D:\Powershell\psModules\ModuleTest\1.0\Tests\Test.ps1**
PSScriptRoot = D:\Powershell\psModules\ModuleTest\1.0\Tests
PSCommandPath = D:\Powershell\psModules\ModuleTest\1.0\Tests\Test.ps1
Location = D:\Powershell
Done...
3) Использование оператора #Requires -Module возвращает нет информации о вызывающем абоненте.(удаление модуля между тестами)
callstack = ModuleTest.psm1
ScriptName =
PSScriptRoot =
PSCommandPath =
Location = D:\Powershell
Done...
Я искал и тестировал, пробовал области и $ script / $ global и все, что мог придумать.Я бы предпочел, чтобы код модуля извлекал значения, а не скрипт, передающий их, так что мне не нужно быть внимательным каждый раз, когда я хочу сослаться на модуль.
Если ничего другого, я не позволю #Требует и выдать ошибку, когда в MyInvocation ничего нет.