簡體   English   中英

使用powershell從路徑獲取最新創建的文件夾

[英]get the latest created folder from a path using powershell

如何使用Windows PowerShell從路徑獲取最新創建的文件夾?

我有路徑C:\\temp ,我想在此路徑中找到最近創建的文件夾。

PowerShell主要與管道一起工作,因此您編寫的大部分內容將包括創建表示某些信息的對象,以及過濾和操作它們。 在這種情況下,對象是一堆文件夾。

  1. 獲取文件夾中的所有項目。 這將獲取文件文件夾,這就是為什么第2步是必要的。 | 在行的末尾表示管道將在下一行繼續 - Get-ChildItem創建的對象將逐個傳遞給另一個命令。

     Get-ChildItem c:\\temp | 
  2. 過濾文件夾。 可悲的是,沒有真正優雅的方式。 不要擔心它說“容器”,而不是“文件夾” - 這些命令可以處理許多不同的東西,不僅僅是文件和文件夾,因此在命名時使用了更一般的概念。

     Where { $_.PSIsContainer } | 
  3. 按日期排序,降序,因此最新的文件夾是第一個。

     Sort CreationTime -Descending | 
  4. 選擇第一個(最新)文件夾。

     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及其別名gmGet-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM