取得一個以上指定位置中的項目和子項目。

語法

Get-ChildItem [[-路徑] <string[]>] [[-Filter] <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]

Get-ChildItem [-LiteralPath] <string[]> [[-Filter] <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>]

描述

Get-ChildItem Cmdlet 會取得一個或多個指定位置中的項目。當項目是個容器時,它會取得容器內部的項目,即為一般所指的子項目。您可以使用 Recurse 參數取得所有子容器中的項目。

位置可以是檔案系統位置 (例如,目錄),或是由其他提供者公開的位置 (例如,登錄 Hive 或憑證存放區)。

參數

-Exclude <string[]>

忽略指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Filter <string>

指定以提供者的格式或語言表示的篩選器。此參數的值用於限定 Path 參數。篩選器的語法 (包括萬用字元的用法) 依提供者而定。篩選器比其他參數更有效率,因為提供者會在擷取物件時套用篩選器,而非等到 Windows PowerShell 擷取物件後才進行篩選。

必要?

false

位置?

2

預設值

接受管線輸入?

false

接受萬用字元?

false

-Force

允許此 Cmdlet 取得使用者無法以其他方式存取的項目,例如隱藏檔案或系統檔案。實作因提供者而異。如需詳細資訊,請參閱 about_Providers。即便使用 Force 參數,此 Cmdlet 也無法覆寫安全性限制。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Include <string[]>

只擷取指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

只有當命令中包含 Recurse 參數,或路徑解譯成目錄的內容 (例如 C:\Windows\* 中的萬用字元指定了 C:\Windows 目錄的內容) 時,Include 參數才會生效。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-LiteralPath <string[]>

指定指向一個或多個位置的路徑。LiteralPath 與 Path 不同,係取用實際輸入的內容做為參數值。任何字元均不被解譯成萬用字元。如果路徑中包含逸出字元,請將其置於單引號內。單引號係告訴 Windows PowerShell 不要將任何字元解譯成逸出序列。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Name

只擷取位於指定位置項目的名稱。若將此命令的輸出傳送至其他命令,則只會傳送項目名稱。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Path <string[]>

指定指向一個或多個位置的路徑。允許使用萬用字元。預設位置為目前目錄 (.)。

必要?

false

位置?

1

預設值

接受管線輸入?

true (ByValue, ByPropertyName)

接受萬用字元?

false

-Recurse

取得位於指定位置,以及位於這些位置的所有子項目中的項目。

只有當路徑指向具有子項目的容器 (例如 C:\Windows 或 C:\Windows\*) 時,Recurse 才有作用;如果路徑指向沒有子項目的項目 (例如 C:\Windows\*.exe) 則毫無作用。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-UseTransaction

將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.String

您可以經由管道將包含路徑的字串輸出至 Get-ChildItem。

輸出

Object。

Get-ChildItem 傳回的物件類型是由其搭配使用的提供者所決定。

附註

您也可以利用 Get-ChildItem 的內建別名 ("ls"、"dir" 和 "gci") 對其進行參照。如需詳細資訊,請參閱 about_Aliases。

根據預設,Get-ChildItem 不會取得隱藏的項目。若要取得隱藏項目,請使用 -Force。

Get-ChildItem Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PsProvider"。如需詳細資訊,請參閱 about_Providers。

範例 1

C:\PS>get-childitem

描述
-----------
這個命令會取得目前位置中的子項目。當位置為檔案系統目錄時,它會取得目前目錄中的檔案和子目錄。如果項目並不包含子項目,這個命令就會回到命令提示字元,而不顯示任何結果。

預設顯示會列出檔案的模式 (屬性)、上次寫入時間、檔案大小 (長度) 和檔名。有效的模式值如下:d (目錄)、a (保存)、r (唯讀)、h (隱藏) 和 s (系統)。






範例 2

C:\PS>get-childitem . -include *.txt -recurse -force

描述
-----------
這個命令會擷取在目前目錄以及其子目錄中的所有 .txt 檔案。點 (.) 代表目前的目錄,而 Include 參數指定副檔名。Recurse 參數設定 Windows PowerShell 遞迴地擷取物件,並指出此命令的主體是所指定的目錄及其內容。Force 參數會將隱藏的檔案新增到顯示。






範例 3

C:\PS>get-childitem c:\windows\logs\* -include *.txt -exclude A*

描述
-----------
這個命令會列出 Logs 子目錄中名稱以字母 A 開頭之外的所有 .txt 檔案。它使用萬用字元 (*) 表示 Logs 子目錄的內容,而不是目錄容器。因為命令不包括 Recurse 參數,所以 Get-ChildItem 不會自動加入目錄內容,您必須另外指定。






範例 4

C:\PS>get-childitem registry::hklm\software

描述
-----------
這個命令會擷取本機電腦登錄中 HKEY_LOCAL_MACHINE\SOFTWARE 機碼內的所有登錄機碼。






範例 5

C:\PS>get-childitem -name

描述
-----------
這個命令只擷取目前目錄中之項目的名稱。






範例 6

C:\PS>get-childitem cert:\. -recurse -codesigningcert

描述
-----------
這個命令會取得憑證存放區中所有具有程式碼簽署授權的憑證。

此命令使用 Get-ChildItem Cmdlet。這個路徑指定由 Windows PowerShell Certificate 提供者公開的 Cert: 磁碟機。反斜線 (\) 符號指定憑證存放區的子目錄,而點 (.) 代表目前的目錄,這是憑證存放區的根目錄。Recurse 參數指定遞迴搜尋。

CodeSigningCertificate 為只取得具有程式碼簽署授權之憑證的動態參數。如需詳細資訊,請輸入 "get-help certificate"。






範例 7

C:\PS>get-childitem * -include *.exe

描述
-----------
這個命令會擷取目前目錄中所有具有 ".exe" 副檔名的項目。萬用字元 (*) 代表目前目錄 (不是容器) 的內容。如果未搭配 Recurse 參數使用 Include 參數,此時路徑一定是指向內容,而非容器。






請參閱




目錄