Test-ModuleManifest

驗證模組清單檔案是否準確描述模組內容。

語法

Default (預設值)

Test-ModuleManifest
    [-Path] <String>
    [<CommonParameters>]

Description

該 Test-ModuleManifest cmdlet 會驗證模組 manifest (.psd1) 檔案中列出的檔案是否確實位於指定的路徑中。

此 cmdlet 旨在協助模組作者測試他們的清單檔案。 模組使用者也可以在腳本和指令中使用此 cmdlet,在執行依賴模組的腳本前偵測錯誤。

Test-ModuleManifest 回傳一個代表模組的物件。 這也是回 Get-Module 傳的物件類型。 若有任何檔案不在清單中指定的位置,指令本也會對每個遺失的檔案產生錯誤。

範例

範例一:測試清單

Test-ModuleManifest -Path "$PSHOME\Modules\TestModule.psd1"

此指令測試 TestModule.psd1 模組清單。

範例 2:利用管線測試清單

"$PSHOME\Modules\TestModule.psd1" | Test-ModuleManifest
Test-ModuleManifest : The specified type data file 'C:\Windows\System32\Wi
ndowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml' could not be processed because the file was not found. Please correct the path and try again.
At line:1 char:34
+ "$PSHOME\Modules\TestModule.psd1" | Test-ModuleManifest <<<<
+ CategoryInfo          : ResourceUnavailable: (C:\Windows\System32\WindowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml:String) [Test-ModuleManifest], FileNotFoundException
+ FullyQualifiedErrorId : Modules_TypeDataFileNotFound,Microsoft.PowerShell.Commands.TestModuleManifestCommandName

Name              : TestModule
Path              : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestModule\TestModule.psd1
Description       :
Guid              : 6f0f1387-cd25-4902-b7b4-22cff6aefa7b
Version           : 1.0
ModuleBase        : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\TestModule
ModuleType        : Manifest
PrivateData       :
AccessMode        : ReadWrite
ExportedAliases   : {}
ExportedCmdlets   : {}
ExportedFunctions : {}
ExportedVariables : {}
NestedModules     : {}

此指令使用管線運算子(|)將路徑字串傳送至 Test-ModuleManifest。

指令輸出顯示測試失敗,因為清單中列出的 TestTypes.ps1xml 檔案未被找到。

範例 3:撰寫函式來測試模組清單

function Test-ManifestBool ($path)
{$a = dir $path | Test-ModuleManifest -ErrorAction SilentlyContinue; $?}

這個函式類似 Test-ModuleManifest,但它回傳的是布林值。 函式回傳時是清單通過測試,否則$false則回傳$true。

該函式使用 Get-ChildItem cmdlet,alias = dir,取得變數指定的 $path 模組清單。 指令使用管線運算子(|)將檔案物件傳遞給 Test-ModuleManifest。

Test-ModuleManifest 使用 ErrorAction 的常用參數,並以 SilentlyContinue 為值來抑制指令產生的任何錯誤顯示。 它也會儲存回Test-ModuleManifest傳 $a 變數中的 PSModuleInfo 物件。 因此,該物件不會被顯示。

接著,在另一個指令中,函式會顯示自動 $? 變數的值。 如果前一個指令沒有產生錯誤,該指令就會顯示 ,否則就會顯示 $true。$false

你可以在條件語句中使用這個函式,例如可能置 Import-Module 於指令前或使用該模組的指令。

參數

-Path

指定清單檔案的路徑與檔名。 輸入模組清單檔案的可選路徑與名稱,該檔案副檔名為副 .psd1 檔名。 預設位置是目前的目錄。 支援通行符,但必須解析為單一模組清單檔案。 此為必要參數。 您也可以使用管道將路徑傳送至 Test-ModuleManifest。

參數屬性

類型:String
預設值:None
支援萬用字元:True
不要顯示:False

參數集

(All)
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

String

你可以把模組清單的路徑導向這個 cmdlet。

輸出

PSModuleInfo

此 cmdlet 回傳一個代表模組的 PSModuleInfo 物件。 即使清單有錯誤,它也會回傳這個物件。