Test-ModuleManifest

確認模組指令清單檔案正確描述模組的內容。

Syntax

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

Description

Cmdlet Test-ModuleManifest 會驗證模組指令清單 (.psd1) 檔案中所列的檔案實際上位於指定的路徑中。

此 Cmdlet 旨在協助模組作者測試其指令清單檔案。 模組使用者也可以在腳本和命令中使用此 Cmdlet 來偵測錯誤,再執行相依於模組的腳本。

Test-ModuleManifest 會傳回代表模組的物件。 這是傳回的相同物件 Get-Module 類型。 如果指令清單中指定的位置中沒有任何檔案,Cmdlet 也會為每個遺漏的檔案產生錯誤。

範例

範例 1:測試指令清單

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 別名 = dir 來取得變數所 $path 指定的模組指令清單。 命令會使用管線運算子 (|) 將檔案物件傳遞至 Test-ModuleManifest

Test-ModuleManifest會使用 ErrorAction 一般參數搭配 SilentlyContinue 值來隱藏命令產生的任何錯誤顯示。 它也會儲存 在 $a 變數中傳回的 PSModuleInfo 物件 Test-ModuleManifest 。 因此,不會顯示物件。

然後,在個別的命令中,函式會顯示自動變數的值 $? 。 如果上一個指令不會產生任何錯誤,則命令會顯示 ,$False否則為 $True

您可以在條件語句中使用此函式,例如可能位於命令之前 Import-Module 或使用模組的命令。

參數

-Path

指定指令清單檔的路徑和檔名。 輸入具有 .psd1 擴展名之模組指令清單檔的選擇性路徑和名稱。 預設位置是目前目錄。 支援通配符,但必須解析為單一模組指令清單檔案。 此為必要參數。 您也可以使用管線會路徑傳送至 Test-ModuleManifest

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

輸入

String

您可以將路徑傳送至模組指令清單至此 Cmdlet。

輸出

PSModuleInfo

此 Cmdlet 會傳 回代表模組的 PSModuleInfo 物件。 即使指令清單發生錯誤,也會傳回這個物件。