2012-03-12 38 views
44

Chúng tôi tạo các tệp có ngày tháng trong tên. (* bên dưới là ký tự đại diện cho ngày) Tôi muốn lấy tệp cuối cùng và thư mục chứa tệp cũng có ngày (chỉ tháng) trong tiêu đề của nó.Powershell Get-ChildItem tập tin mới nhất trong thư mục

Tôi đang sử dụng PowerShell và tôi đang lên lịch để chạy mỗi ngày. Đây là kịch bản cho đến nay:

$LastFile = *_DailyFile 
    $compareDate = (Get-Date).AddDays(-1) 
    $LastFileCaptured = Get-ChildItem -Recurse | Where-Object {$LastFile.LastWriteTime   
     -ge $compareDate} 

Trả lời

104

Nếu bạn muốn tập tin mới nhất trong thư mục và bạn chỉ đang sử dụng LastWriteTime để xác định tập tin mới nhất, bạn có thể làm một cái gì đó như dưới đây:

gci path | sort LastWriteTime | select -last 1 

Mặt khác, nếu bạn chỉ muốn dựa vào tên có ngày tháng, bạn sẽ có thể có một cái gì đó tương tự như

gci path | select -last 1 

Ngoài ra, nếu có thư mục trong di chuyển rectory, bạn có thể muốn thêm một ?{-not $_.PsIsContainer}

+0

Tôi đã sử dụng ví dụ đầu tiên của bạn và nó hoạt động hoàn hảo. – user977645

+0

@ user977645 nhớ để chấp nhận điều này khi câu trả lời nhấp vào dấu v ở bên trái dưới mũi tên upvote/downvote –

+0

Có một tin đồn trên internet rằng "LastAccessTime" hoạt động cho việc này. Đó là một lời nói dối. Giải pháp của bạn là đúng. – Ben

Các vấn đề liên quan