Compare date - How to check if a file was modified today

Hi,

I’m creating a script to generate one HTML file with Dell EqualLogic data on it.
In the end of the script I want to verify if the file was really modified.
What I’m trying:

  • check today date
  • check file last write time
  • compare them

Tested with this:

$Today = Get-Date
$FileDate = (Get-ChildItem ConfigEQL.html).LastWriteTime
if ($FileDate -ge $Today){"ok"} else {"not ok"}

and:

$FileDate.CompareTo($Today)

What is the best way (and working way) to do it?

I was able to do it using this:

$Xminutes = "2"
$File = Get-ChildItem C:\PowerShell\Storage\Files\ConfigEQL.html | ? {$_.LastWriteTime -gt (Get-Date).AddMinutes(-$Xminutes)}

Thanks!

Hi,

This is how I would do it:

$Date = Get-Date;

# ...run rest of the script...

$Modified = $($(ls 'C:\PowerShell\Storage\Files\ConfigEQL.html').LastWriteTime -gt $Date);

$Modified will be $true if it was modified, $false otherwise.

What you posted last is putting the file in $File if it was modified in the last 2 minutes,
otherwise it will be $null. It serves the purpose for you, I just prefer having the result in a
boolean fashion, maybe for a later use.

Balázs Ludányi,

Thanks a lot! This is a much better way =]

Put it all in one line rather than setting date at the beginning. All the extra formatting is unnecessary.

(gci C:\PowerShell\Storage\Files\ConfigEQL.html).lastwritetime -gt [datetime]::today

Alternatively use get-date and add minutes. (get-date).addminutes(-2)

Powershell is really good at math as well.

([datetime]::now - (gci .\ConfigEQL.html).lastwritetime).totalminutes -lt 2