Get-ChildItem
取得一個以上指定位置中的項目和子項目。
語法
Get-ChildItem [[-Path] <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 參數,此時路徑一定是指向內容,而非容器。