Apr 12 2023 01:12 PM
This script is working well, and providing me the specified information, but in addition to the total file count in each folder, I need the file counts by day for each folder, within the date range. Any assistance greatly appreciated. Here's what I have so far:
#Use present date/time to create a unique output file name
$dirs = Get-ChildItem "\\dataserver\datafolders\PQM\$mMake" -Directory
$now = (Get-Date).ToString() -replace ':','.' -replace '/','.'
$csvLog = "\\Myserver\myfolders\Documents\PowerShellOutput\$mMake Latest Files $startDate - $endDate $trendOrevent $now.csv"
$csvLog
foreach ($dir in $dirs) {
$recentFile = $null
$folder = $dir.Name
$directory = $dir.FullName
$filesCount = (Get-ChildItem $directory -Filter "$trendOrevent*.pqd" -Recurse `
| Where-Object { $_.CreationTime -ge $sds-and $_.CreationTime -lt $eds }).Count
$recentFile = Get-ChildItem $directory -Filter "$trendOrevent*.pqd" -Recurse | Sort-Object LastWriteTime -Descending| Select-Object -First 1
$recentFileName = $recentFile.Name
$recentFileLength = $recentFile.Length
$recentFileWriteTime = $recentFile.LastWriteTime
# This if statement finds all the folders with trend or event files and counts the ones in the date range
if ($recentFile) {
$object = New-Object -TypeName psobject
$object | Add-Member -MemberType NoteProperty -Name "Site" -Value $folder
$object | Add-Member -MemberType NoteProperty -Name "File Name" -Value $recentFileName
$object | Add-Member -MemberType NoteProperty -Name "File Size" -Value $recentFileLength
$object | Add-Member -MemberType NoteProperty -Name "Date Time" -Value $recentFileWriteTime
$object | Add-Member -MemberType NoteProperty -Name "File Count" -Value $filesCount
$object | Export-Csv $csvLog -Encoding ASCII -Append -NoTypeInformation
# This else statement finds all the folders that don't have trend or event files
} else {
$object = New-Object -TypeName psobject
$object | Add-Member -MemberType NoteProperty -Name "Site" -Value $folder
$object | Add-Member -MemberType NoteProperty -Name "File Name" -Value "No files in Folder"
$object | Add-Member -MemberType NoteProperty -Name "File Size" -Value $recentFileLength
$object | Add-Member -MemberType NoteProperty -Name "Date Time" -Value $recentFileWriteTime
$object | Add-Member -MemberType NoteProperty -Name "File Count" -Value $filesCount
$object | Export-Csv $csvLog -Encoding ASCII -Append -NoTypeInformation
}
}
Apr 13 2023 06:04 AM
This should help you
$Dir = "\\dataserver\datafolders\PQM\$mMake"
$start = (Get-Date).AddDays(-30)
$end = Get-Date
$Files = Get-ChildItem $dir | Where-Object { $_.CreationTime -ge $start -and $_.CreationTime -lt $End } | Group {$_.LastWriteTime.ToString("yyyy-MM-dd")} | Sort Name
$files
Regards
Andres Bohren
Apr 13 2023 10:46 AM
Apr 13 2023 11:35 AM - edited Apr 13 2023 11:36 AM
For the Files with the Same Modified Date (including hh:mm)
$Files = Get-ChildItem $directory | Where-Object { $_.CreationTime -ge $start -and $_.CreationTime -lt $End } | Group {$_.LastWriteTime.ToString("yyyy-MM-dd hh:mm")} | Sort Name
#Filename: event-YYYYMMDDT >First 16 Characters you want to Compare
$Filenames = Get-ChildItem $directory | Where-Object { $_.CreationTime -ge $start -and $_.CreationTime -lt $End } | Group {$_.Name.SubString(0,16)} | Sort Name
How does that work?
Regards
Andres