豆子之前在腳本里面自定義對象的時候一般是這么考慮的,我需要創建一個數組,每次循環的時候把一個自定義的對象放進去,對于這個自定義的對象的結構,我需要創建一個哈希表,然后轉換成自定義對象。這個思路是沒錯,不過具體寫的時候有些小技巧。
比如說最近看的一個小挑戰,其中需要把下面這個$list的值自定義一個對象保存出來。
$list = @" 1 Partridge in a pear tree 2 Turtle Doves 3 French Hens 4 Calling Birds 5 Golden Rings 6 Geese a laying 7 Swans a swimming 8 Maids a milking 9 Ladies dancing 10 Lords a leaping 11 Pipers piping 12 Drummers drumming "@
我寫的第一個版本是最啰嗦的:
$pp=$null $pp=[ordered]@{"Count"=$null;"Gift"=$null} $obj=New-Object -TypeName psobject -property $pp $result=@() $list.Split("`n") |ForEach-Object{ $temp=$obj | select * $temp.Count=$_.Split("")[0] $temp.Gift=$_.Substring($_.Split("")[0].Length) $result+=$temp } $result
后來改進了一下,不需要在循環外定義,直接在循環里面就可以創建哈希表并強制轉換了
$result2=@() $list -split "`n" | foreach { $split = $_ -split " ",2 $temp=[pscustomobject]@{Count=$split[0];Item = $split[1].trim()} $result2+=$temp } $result2
再后來,發現還可以更精簡一下
$gifts = $list -split "`n" | foreach { $split = $_ -split " ",2 [pscustomobject]@{Count=$split[0];Item = $split[1].trim()} } $gifts
注意第一個方式是PS 2.0時代的寫法,進入3.0以后就可以使用后面兩張簡單的寫法了。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章題目:Powershell自定義對象小技巧-創新互聯
本文地址:http://vcdvsql.cn/article2/djgeoc.html
成都網站建設公司_創新互聯,為您提供靜態網站、外貿網站建設、搜索引擎優化、網站維護、微信小程序、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯