2013-04-08 25 views
20

Tôi sử dụng lệnh Powershell để tạo báo cáo CSV của một số loại tệp nhất định. Mục tiêu của tôi là tìm hiểu số lượng đã được thêm vào trong một phạm vi ngày cụ thể. Ngay bây giờ, kịch bản tìm thấy mọi thứ và tôi sắp xếp theo ngày để tìm số của tôi. Tôi muốn sửa đổi lệnh để chỉ trả về các đối tượng trong một cơn thịnh nộ ngày tạo, tức là nếu tệp này được tạo từ ngày 1 tháng 3 năm 2013 đến ngày 31 tháng 3 năm 2013. Có thể là cách để hạn chế lệnh theo phạm vi ngày, có khả năng sử dụng Chọn- Object, tôi không thể hình dung ra được.Giới hạn Powershell Get-ChildItem theo Phạm vi ngày tạo tệp

Get-ChildItem 'PATH' -recurse -include @("*.tif*","*.jp2","*.pdf") | Select-Object FullName, CreationTime, @{Name="Mbytes";Expression={$_.Length/1Kb}}, @{Name="Age";Expression={(((Get-Date) - $_.CreationTime).Days)}} | Export-Csv 'PATH\scans.csv' 
+0

Đối với hồ sơ, tôi m không quen thuộc với Powershell d không biết phải tìm gì. Lệnh tôi đang sử dụng được lấy từ những nơi khác trực tuyến. Tôi đã tìm kiếm trên Google để tìm câu trả lời này và không thể; đó là nơi mà suy nghĩ của tôi về việc sử dụng Select-Object xuất phát từ đó. Tôi từ chối và phẫn nộ tuyên bố của bạn, điều này được cho là một diễn đàn trợ giúp; nhưng, tôi đánh giá cao sự giúp đỡ của bạn. – Nathan

+3

+1 vì Nathan * đã * cố gắng. Có một sự khác biệt giữa một người không quen thuộc với một công nghệ (và có thể không biết ngay cả những gì để tìm kiếm) và một người nào đó không nỗ lực. [Làm rõ bình luận trước đó của tôi - "+ 1" cho biết tôi đã bỏ phiếu cho câu hỏi của bạn để chống lại các downvotes] :-) –

+1

Tôi đoán tôi chỉ mong đợi nhiều hơn nữa. Một tìm kiếm đơn giản cho "PowerShell nhận ngày tạo tệp" trên google sẽ cung cấp cho anh mọi thứ ngoại trừ '-and' trong lần truy cập đầu tiên và bạn không cần kiến ​​thức về quyền năng để tìm ra cụm từ tìm kiếm đó =) –

Trả lời

34

Sử dụng Where-Object và kiểm tra $_.CreationTime:

Get-ChildItem 'PATH' -recurse -include @("*.tif*","*.jp2","*.pdf") | 
    Where-Object { $_.CreationTime -ge "03/01/2013" -and $_.CreationTime -le "03/31/2013" } 
2

Sử dụng Where-Object, như:

Get-ChildItem 'PATH' -recurse -include @("*.tif*","*.jp2","*.pdf") | 
Where-Object { $_.CreationTime -gt "03/01/2013" -and $_.CreationTime -lt "03/31/2013" } 
Select-Object FullName, CreationTime, @{Name="Mbytes";Expression={$_.Length/1Kb}}, @{Name="Age";Expression={(((Get-Date) - $_.CreationTime).Days)}} | 
Export-Csv 'PATH\scans.csv' 
1

cố định nó ...

Get-ChildItem C:\Windows\ -recurse -include @("*.txt*","*.pdf") | 
Where-Object {$_.CreationTime -gt "01/01/2013" -and $_.CreationTime -lt "12/02/2014"} | 
Select-Object FullName, CreationTime, @{Name="Mbytes";Expression={$_.Length/1Kb}}, @{Name="Age";Expression={(((Get-Date) - $_.CreationTime).Days)}} | 
Export-Csv C:\search_TXT-and-PDF_files_01012013-to-12022014_sort.txt 
+0

. thêm 4 dấu cách vào 'Get-ChildItem' – HKTonyLee

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