你能告诉我为什么下面的代码没有导出任何函数:
# 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"
谢谢