[英]get the latest created folder from a path using powershell
如何使用Windows PowerShell從路徑獲取最新創建的文件夾?
我有路徑C:\\temp
,我想在此路徑中找到最近創建的文件夾。
PowerShell主要與管道一起工作,因此您編寫的大部分內容將包括創建表示某些信息的對象,以及過濾和操作它們。 在這種情況下,對象是一堆文件夾。
獲取文件夾中的所有項目。 這將獲取文件和文件夾,這就是為什么第2步是必要的。 |
在行的末尾表示管道將在下一行繼續 - Get-ChildItem
創建的對象將逐個傳遞給另一個命令。
Get-ChildItem c:\\temp |
過濾文件夾。 可悲的是,沒有真正優雅的方式。 不要擔心它說“容器”,而不是“文件夾” - 這些命令可以處理許多不同的東西,不僅僅是文件和文件夾,因此在命名時使用了更一般的概念。
Where { $_.PSIsContainer } |
按日期排序,降序,因此最新的文件夾是第一個。
Sort CreationTime -Descending |
選擇第一個(最新)文件夾。
Select -First 1
簡而言之:
gci c:\temp | ? { $_.PSIsContainer } | sort CreationTime -desc | select -f 1
要么
(gci c:\temp | ? { $_.PSIsContainer } | sort CreationTime)[-1]
這兩行都大量使用PowerShell中的命令的默認別名,例如?
對於Where-Object
。 但是,您應該在腳本中使用全名,因為您永遠不會知道代碼可能在其他機器上運行的別名。
編輯: PowerShell 3具有Get-ChildItem
其他參數,允許您直接對文件或文件夾進行過濾,因此您不需要Where
:
Get-ChildItem -Directory C:\temp | ...
通常,您將在PowerShell中使用對象及其屬性。 兩個非常有用的命令是Get-Member
及其別名gm
和Get-Command
或只是gcm
。 Get-Member
將告訴您對象具有哪些屬性和方法; 你只需將其他東西輸入其中:
Get-ChildItem | gm
會告訴你文件和目錄有哪些屬性。
Get-Command
將列出所有命令或與特定模式匹配的命令。 PowerShell命令在動詞和名詞的使用方面嘗試非常一致。 要查找以Object
結尾的所有命令,您可以嘗試gcm *-Object
- 這些是幾乎所有內容的通用命令。 Get-Help ForEach-Object
然后會告訴你一個特定的命令,在這種情況下是ForEach-Object
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.