ค้นหาเว็บไซต์

ทดสอบ ModuleManifest (Microsoft.PowerShell.Core)


Test-ModuleManifest

โมดูล :
Microsoft.PowerShell.Core

ตรวจสอบว่าไฟล์รายการโมดูลอธิบายเนื้อหาของโมดูลได้อย่างถูกต้อง

ไวยากรณ์

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

คำอธิบาย

Test-ModuleManifest cmdlet ตรวจสอบว่าไฟล์ที่แสดงอยู่ในไฟล์รายการโมดูล (.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 แต่จะส่งกลับค่าบูลีน ฟังก์ชันจะส่งกลับ $True หากรายการผ่านการทดสอบและ $False มิฉะนั้น

ฟังก์ชันใช้ Get-ChildItem cmdlet นามแฝง=dir เพื่อรับรายการโมดูลที่ระบุโดยตัวแปร $path คำสั่งใช้ตัวดำเนินการไปป์ไลน์ (|) เพื่อส่งวัตถุไฟล์ไปที่ Test-ModuleManifest

Test-ModuleManifest ใช้พารามิเตอร์ทั่วไป ErrorAction ที่มีค่า SilentlyContinue เพื่อระงับการแสดงข้อผิดพลาดใดๆ ที่คำสั่งสร้างขึ้น นอกจากนี้ยังบันทึกอ็อบเจ็กต์ PSModuleInfo ที่ Test-ModuleManifest ส่งคืนในตัวแปร $a ดังนั้นวัตถุจึงไม่แสดง

จากนั้น ในคำสั่งแยกต่างหาก ฟังก์ชันจะแสดงค่าของตัวแปรอัตโนมัติ $? หากคำสั่งก่อนหน้าไม่สร้างข้อผิดพลาด คำสั่งจะแสดง $True และ $False มิฉะนั้น

คุณสามารถใช้ฟังก์ชันนี้ในคำสั่งแบบมีเงื่อนไข เช่น คำสั่งที่อาจนำหน้าคำสั่ง Import-Module หรือคำสั่งที่ใช้โมดูล

พารามิเตอร์

-Path

ระบุเส้นทางและชื่อไฟล์สำหรับไฟล์รายการ ป้อนเส้นทางและชื่อของไฟล์รายการโมดูลที่มีนามสกุลไฟล์ .psd1 ตำแหน่งเริ่มต้นคือไดเร็กทอรีปัจจุบัน รองรับอักขระตัวแทน แต่ต้องแปลงเป็นไฟล์รายการโมดูลเดียว จำเป็นต้องมีพารามิเตอร์นี้ คุณยังสามารถไพพ์พาธไปยัง Test-ModuleManifest ได้ด้วย

พิมพ์ :

String

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

True

อินพุต

สตริง

คุณสามารถไปป์เส้นทางไปยังรายการโมดูลไปยัง cmdlet นี้

เอาท์พุต

PSModuleInfo

cmdlet นี้ส่งกลับวัตถุ PSModuleInfo ที่แสดงถึงโมดูล มันจะส่งคืนวัตถุนี้แม้ว่ารายการจะมีข้อผิดพลาดก็ตาม

บทความที่เกี่ยวข้อง