日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零开始学PowerShell(5)自定义格式化信息

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始学PowerShell(5)自定义格式化信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們已經基本了解了大部分在PowerShell中的格式化輸出命令的使用,但是我們之前做的內容的格式化也僅僅是針對現有輸出的內容做一些排版格式的輸出,在某些場景需求下,這樣的排版還是顯得過于單調。所以今天要講一下如何自定義格式化信息。這是個很有趣的話題,所以單獨放在了一篇文章里講。

PowerShell輸出的信息內容其實默認是經過排版的,基本以表單的形式,像下面這樣。

為了更好的說明自定義格式化信息的用意,我來假設一個場景需求。我需要羅列出Id值大于2000的進程信息,但一定要輸出的信息給別人一看就明白,該怎么做呢?我們都知道,表單能讓人一眼就看明白主要取決于行列標題,一個清晰明確的行標題名稱能給閱讀者一目了然的作用,所以我們就要從行列標題下手。

老樣子,先放出實現的代碼行如下。

Get-Process | Where-Object{$_.Id -gt 2000} | Format-Table ProcessName, @{Expression={$_.Id}; Name="Id>2000"}

我們從輸出的信息結果就可以看到,ID那一欄的行標題被我修改為了了Id>2000我可以把這個輸出傳遞給任何需要這個場景的人,他們一看就知道這一列的信息羅列的是Id值大于2000的進程信息。

現在讓我們來分析下這個命令行到底做了什么,整個命令行的邏輯是一開始我們用Get-Process | Where-Object{$_.Id -gt 2000}完成最基本的條件過濾,過濾出所有Id值大于2000的進程信息。

接下去是關鍵,我們使用了一個小技巧來自定義格式化我們的輸出內容,我們使用了Format-Table ProcessName, @{Expression={$_.Id}; Name="Id>2000"},如果不用自定義的方式我們將會這樣寫Format-Table ProcessName, Id,這樣你可以看出區別了吧。我把Id那一列寫成了@{Expression={$_.Id}; Name="Id>2000"}這一行其實是一個哈希表表達式,格式的語法基本是@{Expression={你想修改的屬性列};Name="屬性列更改后的名稱"}

既然使用的是哈希表的方式來自定義格式化輸出,我們就可以直接以自定義哈希表的方式來靈活自定義格式化輸出。在PowerShell中定義哈希表的寫法是@{},所以我們可以換成如下的方式去賦值。(其實這種方式在PowerShell中也有個專門的技巧說法那就是Splatting,大家如果對Splatting感興趣可以查看我之前寫的使用Splatting方傳遞參數來更好的了解用法。)

# 將自定義的哈希表表達式賦值給變量CustomColumn $CustomColumn = @{Expression="Id"; Name="Id>2000"} # 直接調用變量即可 Get-Process | Where-Object{$_.Id -gt 200} | Format-Table ProcessName, $CustomColumn

除了修改行標題名稱以外,還可以對屬性值做很多自定義計算操作等等,比如我把Id屬性值以整數帶后兩位整零的格式(如:*.00)輸出。

Get-Process | Format-Table Name, @{Expression={$_.Id}; Name="Custom_Id"; FormatString="N2"}

這里我增加了一個哈希鍵值FormatString="N2"?這個主要是告訴PowerShell這一列定義輸出的內容都以整數格式輸出并且保留后兩位整零格式。你可以看到下面所有我們自定義的Custom_Id列都類似*.00格式輸出了。

當然哈希表自定義格式化不僅僅只是在Format類型的命令格式化輸出中使用哦,也可以用于Select-Object、Sort-Object等命令里,它可靈活了,你用多了就會慢慢喜歡上這個技巧了。?

總結

以上是生活随笔為你收集整理的从零开始学PowerShell(5)自定义格式化信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。