例如,比較 Powershell 中的以下命令:
Get-Item -Path "C:\Users\test.user\Desktop\*"
和
Get-ChildItem -Path "C:\Users\test.user\Desktop"
我的有限測驗表明輸出沒有差異。
如果確實沒有區別,這就引出了一個問題:為什么Get-ChildItem存在?
uj5u.com熱心網友回復:
在討論是否需要兩個不同的命令之前:
Get-Item旨在回傳有關目標專案本身的資訊。Get-ChildItem旨在回傳有關目標專案的子項的資訊,如果給定的專案恰好是一個容器- 在檔案系統專案的情況下適用于目錄(檔案夾)。- 但是,以通配符運算式為目標的專案始終報告為自己,即使它們是容器(目錄)。
毫無疑問,有大量的重疊這兩個小命令之間,Get-ChildItem支承有更多的(部分提供商特定的)的功能比Get-Item。相反,有一些特性是Get-Item.
真:有沒有嚴格的需要都 Get-Item和Get-ChildItem。
其他 shell 和平臺只需要一個命令,這相當于Get-ChildItem,但是,不是Get-Item:
cmd.exe僅帶有其內部dir命令。類 Unix 平臺僅帶有外部
ls實用程式。- 注意:可以說,外部
stat實用程式是 的模擬Get-Item,但其語法和輸出格式與ls. 這就是說,一個不同的輸出格式,不需要在PowerShell的一個問題,因為它具有明確分開的資料和其表示,與各種Format-*的cmdlet允許對需求的陳述的定制。
- 注意:可以說,外部
對于Get-ChildItem完全取代Get-Item,這將需要支持以下附加功能:
在 Windows 上,該
-Stream引數,Get-Item目前僅支持。假設是該
-Credential引數(根據鏈接的檔案,PowerShell 附帶的任何提供程式目前都不支持該引數)。A(有點自相矛盾)的方式來表明你想要的是指文字的目標路徑目錄(容器)回傳有關目錄(容器)的資訊本身,而不是它的孩子。
- 在類 Unix 平臺上,該
ls實用程式的-d選項會執行此操作 - 盡管不執行名稱決議,例如決議.為目錄名稱。 - 相比之下,
cmd.exe的dir命令并沒有直接支持(換句話說:它不直接支持Get-Item的功能,對于目錄)。
- 在類 Unix 平臺上,該
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/384891.html
標籤:电源外壳
