# encoding: ascii
# api: powershell
# title: Search Files by Date
# description: Please: If you download and like, please tweet it.
# version: 1.0
# type: script
# author: Matt Schmitt
# license: CC0
# x-poshcode-id: 3806
# x-archived: 2012-12-04T12:10:48
# x-published: 2012-11-30T09:15:00
#
# This project is in response to “Need PS script to search files by date accessed” script request: http://gallery.technet.microsoft.com/scriptcenter/site/requests/Need-PS-script-to-search-files-by-date-accessed-66042eaf?ShowSubmitLinkForm=False
# This is a script that will export a csv file containing the names of files for files in a certain directory (including sub-directories) within a date range. When ran, the script asks for the root directory, the from and to dates, and where to export the file to.
# # Enjoy!
# Matt
#
<#
Author: Matt Schmitt
Date: 11/30/12
Version: 1.0
From: USA
Email: ithink2020@gmail.com
Website: http://about.me/schmittmatt
Twitter: @MatthewASchmitt
Description
A script for finding files in a directory by Last Accessed Date.
#>
Write-Host "Enter Root Directory you would like to search"
Write-Host ""
Write-Host "Example: C:\Users\testuser"
Write-Host ""
$directory = Read-Host ">>"
cls
Write-Host "Enter "From" Date"
Write-Host ""
Write-Host "Example: 1/1/12"
Write-Host ""
$startDate = Read-Host '>>'
cls
Write-Host "Enter "To" Date"
Write-Host ""
Write-Host "Example: 11/30/12"
Write-Host ""
$endDate = Read-Host '>>'
cls
Write-Host "Enter where you would like the CSV file to be exported"
Write-Host ""
Write-Host "Example: C:\Files.csv"
Write-Host ""
$outPutFile = Read-Host '>>'
cls
Write-Host ""
Write-Host ""
Write-Host "Searching for files in '$directory' from '$startDate' to '$endDate'..."
Get-ChildItem -path $directory -Recurse | where { $_.lastaccesstime -ge [datetime]$startDate -and $_.lastaccesstime -lt [datetime]$endDate} | select fullname | Export-CSV -Path $outPutFile
Write-Host ""
Write-Host "Results have been exported!"
Write-Host ""
Write-Host "Press any key to Exit."
#Code to wait for user to press a key.
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")