web-dev-qa-db-fra.com

Limitation de Powershell Get-ChildItem par plage de dates de création de fichier

J'utilise une commande Powershell pour générer un rapport CSV de certains types de fichiers. Mon objectif est de savoir combien ont été ajoutés au cours d'une période donnée. En ce moment, le script trouve tout et je trie par date pour trouver mon numéro. Je voudrais modifier la commande pour ne renvoyer que les objets dans une période de date de création, c'est-à-dire si ce fichier a été créé entre le 1er mars 2013 et le 31 mars 2013. Il existe probablement un moyen de limiter la commande par une plage de dates, probablement en utilisant Select- Objet, je ne peux pas le comprendre.

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'
28
Nathan

Utilisation Where-Object et testez le $_.CreationTime:

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

Utilisation Where-Object, comme:

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'
2
Frode F.

A corrigé ...

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
1
user4316099