Я начал изучать Powershell и писал модуль (psm1) для хранения моих функций. Затем я вставил этот код в модуль для того, чтобы перезагрузить модуль, когда я изменить его:Перенос команды сценария Powershell
function reload
{
Remove-Module init
Import-Module F:\Script\init.psm1
}
В результате этой функции появляется немного странно для меня:
PS F:\Script> Get-Module
ModuleType Name ExportedCommands
---------- ---- ----------------
Script init {cpu, ie, lol, outlook...}
Manifest Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
PS F:\Script> reload
PS F:\Script> Get-Module
ModuleType Name ExportedCommands
---------- ---- ----------------
Manifest Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
PS F:\Script>
Почему второй команды в функции не действует? Я также заметил, что модуль появляется в списке, если я вставляю «Get-Module» в конце моей функции, точно так же, как модуль «запускает» в другом экземпляре/сеансе Powershell. Если да, есть ли способ сделать эффекты постоянными?
Спасибо!
EDIT:
я временно решена путем добавления параметра в функции импорта для того, чтобы указать область, в которой, чтобы загрузить модуль:
Import-Module F:\Script\init.psm1 -Global
Является ли это правильный способ справиться с размаху ?
Спасибо за вашу диаграмму, это очень полезно. Теперь, как я могу импортировать модуль в нужную область? – brutus8890