您能告诉我为什么以下代码不会导出任何函数:
# load all functions
$moduleRoot = Split-Path -Path $MyInvocation.MyCommand.Path
$functionFiles = "$moduleRoot\functions\*.ps1" | Resolve-Path
$functionFiles | ForEach-Object { . $_.ProviderPath }
$functionFiles | ForEach-Object { [io.path]::GetFileNameWithoutExtension($_) } | Export-ModuleMember
或者它之间的区别:
不工作:
$test = "Cmd1", "Cmd2"
Export-ModuleMember $test
工作:
Export-ModuleMember "Cmd1", "Cmd2"
更新
当调用" import-module MyCrazyModule"时,我可以看到导出的命令(get-module)。
但是,当调用" get-module -ListAvailable"时,导出的命令属性为空。 (该模块位于PSModulePath中)
更新2:证据
$ PSModulePath包含D:\ powershell
模块:" D:\ powershell \ MyCrazyModule \ MyCrazyModule.psm1"
$test = "Cmd1", "Cmd2"
Export-ModuleMember $test
没有可见的出口:
但内容
Export-ModuleMember "Cmd1", "Cmd2"
谢谢