การขยายออบเจ็กต์ PowerShell DateTime
ฉันได้ทดลองใช้โมดูล PSTypeExtensionTools มากขึ้น โดยค้นหาวัตถุเพิ่มเติมที่จะปรับปรุง คุณสามารถตรวจสอบโปรเจ็กต์บน Github และติดตั้งโมดูลได้จาก PowerShell Gallery ความสนุกของฉันในปัจจุบันคือการใช้ออบเจ็กต์ DateTime โดยเฉพาะการแปลงค่าให้เป็นวัฒนธรรมอื่น เห็นได้ชัดว่าพวกเราในอเมริกาเหนือไม่ทราบวิธีจัดรูปแบบวันที่ให้ถูกต้อง แต่ตอนนี้ด้วยวิธีการสคริปต์บางอย่างที่เพิ่มเข้าไปในประเภท DateTime ฉันจึงสามารถแก้ไขการกำกับดูแลนั้นได้
วิธีจัดรูปแบบวันที่ของคุณจะถูกจัดเก็บไว้ในคำจำกัดความวัฒนธรรม
คุณสามารถรับข้อมูลสำหรับวัฒนธรรมอื่นได้โดยใช้ .NET Framework
มาจัดรูปแบบวันที่ใหม่:
ฉันสามารถใช้ตัวดำเนินการ -f และระบุรูปแบบอื่นได้
$n = Get-Date
"{0:$([cultureinfo]::GetCultureInfo("en-gb").datetimeformat.fulldatetimepattern)}" -f $n
นี่ไม่ใช่เรื่องยากโดยเฉพาะ แต่ต้องพิมพ์เยอะมาก ดังนั้นเรามาทำให้ส่วนขยายนี้เป็นประเภท DateTime ด้วยคำสั่ง Add-PSTypeExtension ของฉัน
$sb = {
Param ([string]$culture)
"{0:$([cultureinfo]::GetCultureInfo("$culture").DateTimeFormat.fulldatetimepattern)}" -f $this
}
Add-PSTypeExtension -TypeName System.Datetime -MemberType ScriptMethod -MemberName ConvertCulture -Value $sb
ตอนนี้มันง่ายกว่ามาก สิ่งที่ฉันต้องทำคือเรียกใช้เมธอดสคริปต์และจัดเตรียมวัฒนธรรม
ฉันยังเพิ่มวิธีการแปลงเป็นรูปแบบวันที่แบบสั้นด้วย
$sb2 = {
Param ([string]$culture)
"{0:$([cultureinfo]::GetCultureInfo("$culture").DateTimeFormat.ShortDatePattern)}" -f $this
}
Add-PSTypeExtension -TypeName System.Datetime -MemberType ScriptMethod -MemberName ConvertShortDate -Value $sb2
คุณก็ใช้มันแบบเดียวกัน
ฉันไม่แน่ใจว่าวิธีการเหล่านี้มีประโยชน์ในทางปฏิบัติเป็นพิเศษ แต่วิธีการเหล่านี้สนุกกับการเล่นและช่วยแสดงให้เห็นถึงคุณค่าในการขยายคำจำกัดความของประเภท ฉันหวังว่าคุณจะลองใช้โมดูล PSTypeExtenstionTools และแจ้งให้เราทราบว่าคุณคิดอย่างไร