Get-Content 主要作用是獲取路徑指定位置的項(文本類檔)的內容,例如檔中的文字或函數的內容。 對於檔,內容一次讀取一行,並返回物件的集合,每個物件表示一行內容。
支援的格式主要包括:
文本:txt 等
文稿檔:bat、psl、vbs、sh等
後端檔:java、cs、cpp等
前端檔:html、css、js、vue、ts 等
配置檔:yml、xml、config 等
說明:
PowerShell 3.0以後的版本開始支援從項的開頭或末尾獲取指定數量的行。
對於包含中文字串的話建議指定編碼格式為utf8編碼避免出現亂碼的情況:-encoding utf8
Get-Content
[-ReadCount ]
[-TotalCount ]
[-Tail ]
[-Path]
[-Filter ]
[-Include ]
[-Exclude ]
[-Force]
[-Credential ]
[-Delimiter ]
[-Wait]
[-Raw]
[-Encoding ]
[-AsByteStream]
[-Stream ]
[]
● -ReadCount:設置每次通過管道發送的內容行數。預設值為 1。 當值為0時一次發送所有文件內容。它的作用時影響顯示內容所需要的時間,值越大第一行顯示時間會變長,但合計的時間會減少,主要是針對哪些比較大的文件來說的。一般運維使用較少。
● -TotalCount:設置檔讀取的行數(從文件頭開始)也可以使用 head、first 等價替代,參數值為負數會讀取整個文件內容。
● -Tail:設置檔讀取的行數(從檔尾部開始),等價於last,參數值為負數會讀取整個文件內容。排查日誌的話使用比較頻繁。
● -Path:設置獲取文件的路徑,可以使用通配符,因此Get-Content 可以一次性讀取多個檔或者多個目錄的內容。
● -Filter:用來設置限定 Path 參數的篩選條件。
● -Include:包含一個或多個項作為字串數位,同樣是作為Path篩選條件使用
● -Exclude:排除一個或多個項作為字串數位,同樣是作為Path篩選條件使用
● -Force:可以替代唯讀屬性或創建目錄以完成檔路徑(可以針對作業系統隱藏檔使用)。一般使用不多。
● -Credential:用戶憑據相關,很少使用。
● -Delimiter:設置在讀取檔時將檔劃分為物件的分隔符,預設是\n。 可以使用此參數將大檔拆分為較小的檔,分隔符不被丟棄。
● -wait:設置輸出所有現有行后,使檔案保持打開狀態。 處於等待狀態, Get-Content 每秒檢查一次檔,並輸出新行(如果存在)。比較常見的是tomcat日誌檔,可以採用這種方式監控日誌的變化,排查問題。
● -Raw:設置忽略換行符,使得檔一行展示(會保留換行符)。
● -Encoding:設置獲取檔案內容的編碼格式。 預設值為 utf8NoBOM,推薦使用utf8避免出現亂碼。支援的格式有(ascii、ansi、bigendianunicode、unicode、utf8等等)
● -AsByteStream:設置文件內容應作為位元組流進行讀取,是6.0版本之後新增的功能參數。目前微軟官方的例子運行也有異常。
● -Stream:從檔案中獲取指定的備用 NTFS 檔流的內容。 輸入流名稱。不支援通配符。僅限Windows操作系統使用。
注意:該方式獲取速度更快,對於大檔檢索非常有用。
獲取指定目錄下所有txt後綴的文件內容
get-content -path E:\test\* -filter "*.txt" -encoding utf8使用Include獲取指定目錄下所有txt後綴的文件內容
get-content -path E:\test\* -include "*.txt" -encoding utf8