Для меня @manojlds дает интересную часть ответа.
Вот еще несколько наблюдений, которые могут помочь @iank уснуть следующей ночью:
при первой загрузке модуля вы можетеиспользуйте следующий комманд
PS> $a = Import-Module .\varExp.psm1 -PassThru
PS> $a.ExportedVariables.var1
Name Value
---- -----
var1 20
Теперь вы измените файл. \ varExp.psm1, чтобы добавить новый var $ var2 = 30, а также экспортировать его.Если вы остаетесь в том же PowerShell, вы можете проверить.$ var2 не отображается.
PS> $b = Import-Module .\varExp.psm1 -PassThru
PS> $b.ExportedVariables
Name Value
---- -----
var1
Для меня, поскольку вы не удаляете модуль (Remove-Module varexp
), модуль перезагружается из информации о памяти, и переменные действительно заменяются, но ни с чем.Если вы удаляете модуль или используете -Force
, модуль перезагружается из файла.Попробуйте следующее:
PS> import-module .\varExp.psm1
PS> Remove-Variable var1
PS> import-module .\varExp.psm1
PS> Get-ChildItem variable:
...
var1
...
$ Var1 воссоздан, но не назначен.