極客學校:在powershell中學習格式化、過濾和比較

在這個版本的Geek School中,我們將研究格式化、過濾和比較管道中的物件。...

極客學校:在powershell中學習格式化、過濾和比較

在這個版本的Geek School中,我們將研究格式化、過濾和比較管道中的物件。

請務必閱讀本系列之前的文章:

  • 瞭解如何使用PowerShell自動化Windows
  • 學習在PowerShell中使用cmdlet
  • 學習如何在PowerShell中使用物件

整個星期請繼續關注本系列的其餘部分。

預設格式

當我剛開始使用PowerShell時,我認為一切都很神奇,但事實上,瞭解引擎蓋下的情況只需要一點時間。PowerShell格式化系統也是如此。實際上,如果執行Get-Service cmdlet,則生成的輸出僅顯示3個屬性:Status、Name和DisplayName。

極客學校:在powershell中學習格式化、過濾和比較

但是如果透過管道Get Service來獲取成員,您會看到ServiceController物件不僅僅具有這三個屬性,那麼會發生什麼呢?

極客學校:在powershell中學習格式化、過濾和比較

答案就在一個隱藏檔案中,該檔案定義了大多數內建cmdlet如何顯示其輸出。要獲得理解,請在shell中鍵入以下內容並按enter鍵。

notepad C:\Windows\System32\WindowsPowerShell\v1.0\DotNetTypes.format.ps1xml

如果使用notepad的Find函式,我們可以透過搜尋ServiceController型別,快速跳到詳細說明Get-Service cmdlet輸出的部分。

極客學校:在powershell中學習格式化、過濾和比較

突然,您可以看到引擎蓋下的PowerShell正在格式化管道中ServiceController型別的任何物件,並建立一個包含三列的表:Status、Name和DisplayName。但是,如果您處理的型別在該檔案或任何其他格式檔案中沒有條目,該怎麼辦?那麼,其實很簡單。如果來自管道的物件具有5個或更多屬性,則PowerShell將在列表中顯示該物件的所有屬性;如果該物件的屬性少於5個,則將在表中顯示這些屬性。

格式化資料

如果您對物件或型別的預設格式不滿意,可以使用自己的格式。要做到這一點,您需要知道三個cmdlet。

  • 格式列表
  • 設定表格格式
  • 寬格式

極客學校:在powershell中學習格式化、過濾和比較

Format-Wide只是獲取物件的集合,並顯示每個物件的單個屬性。預設情況下,它將查詢name屬性;如果物件不包含name屬性,則在按字母順序對屬性排序後,它將使用物件的第一個屬性。

Get-Service | Format-Wide

極客學校:在powershell中學習格式化、過濾和比較

如您所見,它也預設為兩列,不過您可以指定要使用的屬性以及要顯示的列數。

Get-Service | Format-Wide -Property DisplayName -Column 6

極客學校:在powershell中學習格式化、過濾和比較

如果預設情況下某個內容被格式化為表,則始終可以使用Format-list cmdlet將其切換到列表檢視。讓我們看一下Get-processcmdlet的輸出。

極客學校:在powershell中學習格式化、過濾和比較

這個表格檢視實際上非常適合這種資訊,但是讓我們假設我們想以列表形式檢視它。我們真正要做的就是用管道把它格式化。

Get-Process | Format-List

極客學校:在powershell中學習格式化、過濾和比較

如您所見,預設情況下,列表中只顯示四個專案。要檢視物件的所有屬性,可以使用萬用字元。

Get-Process | Format-List –Property *

極客學校:在powershell中學習格式化、過濾和比較

或者,您可以只選擇所需的屬性。

Get-Process | Format-List –Property name,id

極客學校:在powershell中學習格式化、過濾和比較

另一方面,Format Table獲取資料並將其轉換為表。由於Get程序中的資料已經是表的形式,因此我們可以使用它輕鬆地選擇要顯示在表中的屬性。我使用AutoSize引數使所有的資料都適合一個螢幕。

Get-Process | Format-Table name,id –AutoSize

極客學校:在powershell中學習格式化、過濾和比較

過濾和比較

使用基於物件的管道最好的一點是,您可以在任何階段使用Where-object cmdlet從管道中過濾物件。

Get-Service | Where-Object {$_.Status -eq “Running”}

極客學校:在powershell中學習格式化、過濾和比較

使用where物件實際上非常簡單。$\表示當前管道物件,您可以從中選擇要篩選的屬性。在這裡,我們只保留Status屬性等於Running的物件。在篩選指令碼塊中可以使用幾個比較運算子:

  • 等式(等於)
  • neq(不等於)
  • gt(大於)
  • ge(大於或等於)
  • lt(小於)
  • le(小於或等於)
  • like(萬用字元字串匹配)

可以在about\u概念幫助檔案中檢視完整列表和更多資訊,但是要習慣Where物件語法確實需要一些時間。這次就這些了!

  • 發表於 2021-04-11 22:58
  • 閱讀 ( 42 )
  • 分類:網際網路

你可能感興趣的文章

如何在windows powershell中使用命令歷史記錄

Windows PowerShell具有內建的命令歷史記錄功能,可提供有關已執行命令的詳細資訊。與命令提示符一樣,PowerShell只記住當前會話的命令歷史記錄。 如何使用命令列緩衝區 相關:極客學校:學習如何用PowerShell自動化Windows PowerShel...

  • 發佈於 2021-04-08 03:50
  • 閲讀 ( 82 )

如何從windows中的powershell管理windows的可選功能

...的Windows功能,但今天我們將向您展示如何在windows8中透過PowerShell命令列執行相同的操作。 從powershell管理windows可選功能 您首先要做的是檢視您啟用了哪些功能,為此,我們需要將Get-WindowsOptionalFeature cmdlet的輸出傳遞到管道中...

  • 發佈於 2021-04-08 19:45
  • 閲讀 ( 29 )

如何在windows中批次重新命名多個檔案

...以輕鬆地重新命名一個或多個檔案,但使用命令提示符或PowerShell,您還可以執行更多操作。再加上第三方重新命名工具,可能性是無窮的。讓我們看看每個選項及其工作原理。 在windows資源管理器中重新命名多個檔案 Windows資...

  • 發佈於 2021-04-08 21:05
  • 閲讀 ( 58 )

如何在windows上建立已安裝程式的列表

....1和7上執行此操作的幾種不同方法。 簡單的方法:使用powershell命令 相關:極客學校:學習如何用PowerShell自動化Windows PowerShell是Windows中最強大的工具之一,所以它當然可以做一些簡單的事情,比如列出你安裝的程式。事實上...

  • 發佈於 2021-04-09 18:20
  • 閲讀 ( 55 )

powershell與windows命令提示符的區別

Windows7增加了PowerShell,一種比命令提示符更強大的命令列shell和指令碼語言。自Windows7以來,PowerShell變得更加突出,它甚至成為Windows10的預設選擇。 PowerShell比傳統的命令提示符更復雜,但它也更強大。命令提示符明顯不如Linux...

  • 發佈於 2021-04-11 20:41
  • 閲讀 ( 89 )

如何建立一個測試實驗室,讓你可以跟隨極客學校(不破壞你的電腦)

我們的極客學校文章可能會變得相當複雜,沒有理由在你自己的臺式電腦上做大量瘋狂的事情。相反,你可以像我們一樣建立虛擬機器來進行所有測試。下面是如何做到這一點。 您甚至可以將多個虛擬機器連線在一起,因此只...

  • 發佈於 2021-04-11 21:51
  • 閲讀 ( 46 )

極客學校:寫你的第一個完整的powershell指令碼

...的計算機上一次啟動的時間。在上一次安裝Geek School for PowerShell時,我們將編寫一個可重用的PowerShell命令來完成同樣的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如...

  • 發佈於 2021-04-11 22:17
  • 閲讀 ( 50 )

極客學校:學習如何擴充套件powershell

PowerShell為您提供了兩種擴充套件shell的方法。您可以使用管理單元,它是二進位制的,並且是用成熟的程式語言(如C#)開發的,也可以使用模組,它可以是二進位制的,也可以是基於指令碼的。 請務必閱讀本系列之前的文章...

  • 發佈於 2021-04-11 22:25
  • 閲讀 ( 70 )

極客學校:學習如何在powershell中使用作業

PowerShell有四種類型的作業—後臺作業、遠端作業、WMI作業和計劃作業。加入我們,瞭解它們是什麼以及如何使用它們。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動化Windows 學習在PowerShell中使用cmdlet 學習如何在Po...

  • 發佈於 2021-04-11 22:34
  • 閲讀 ( 53 )

極客學校:在powershell中使用集合

由於PowerShell基於.Net框架,並結合了各種其他技術,如WMI和CIM,因此實現同一目標的方法總是不止一種。快來加入我們,學習如何選擇最佳的方法來完成我們的任務。 請務必閱讀本系列之前的文章: 瞭解如何使用PowerShell自動...

  • 發佈於 2021-04-11 22:46
  • 閲讀 ( 43 )
ju543251806
ju543251806

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦