1
我正在使用PowerShell 5.0並嘗試編寫多文件模塊。
該模塊的文件夾結構是這樣的:如何將腳本文件中的函數包含到PowerShell模塊中
/FooModule
--- FooModule.psd1
--- FooModule.psm1
--- AnotherScriptFile.ps1
清單文件FooModule.psd1定製類似如下:
@{
ModuleVersion = '0.0.1'
GUID = ...
Author = ...
CompanyName = ..
Copyright = ...
Description = ...
PowerShellVersion = '5.0'
ClrVersion = '4.0'
RootModule = "FooModule.psm1"
FunctionsToExport = '*'
CmdletsToExport = '*'
VariablesToExport = '*'
AliasesToExport = '*'
# HelpInfoURI = ''
# DefaultCommandPrefix = ''
}
我把這些在FooModule.psm1的開頭:
Push-Location $PSScriptRoot
.\AnotherScriptFile.ps1
Pop-Location
AnotherScriptFile.ps1看起來像這樣:
Write-Host "Imported!"
function Get-FooFunction($val)
{
return "Foo Bar";
}
我想,當我導入模塊時,它會將AnotherScriptFile.ps1的函數和變量讀入模塊的作用域,並導出。 不幸的是,我在模塊的文件夾中導入了Import-Module .\FooModule.psm1
模塊後,調用Get-FooFunction
給了我一個錯誤,說Get-FooFunction
不存在,'Write-Host "Imported!"
被調用。
什麼是正確的方法來完成這項工作?
感謝您的快速回復。我嘗試過,但它沒有工作:( – WonTasia
另一種方法是點擊您的FooModule.psm1中的文件(用另一個點)。試試這個: '。\。\ AnotherScriptFile.ps1' –
我試過了,但是這一次發生了錯誤,說'.. \ AnotherScriptFile.ps1不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。「。工作目錄被設置爲模塊的根目錄。 – WonTasia