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

This topic contains 5 replies, has 3 voices, and was last updated by Profile photo of Dan Potter Dan Potter 2 months ago.

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #47787
    Profile photo of Vandrey Trindade
    Vandrey Trindade
    Participant

    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?

    #47793
    Profile photo of Vandrey Trindade
    Vandrey Trindade
    Participant

    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!

    #47849
    Profile photo of Balázs Ludányi
    Balázs Ludányi
    Participant

    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.

    #47939
    Profile photo of Vandrey Trindade
    Vandrey Trindade
    Participant

    Balázs Ludányi,

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

    #48101
    Profile photo of Dan Potter
    Dan Potter
    Participant

    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)

    #48107
    Profile photo of Dan Potter
    Dan Potter
    Participant

    Powershell is really good at math as well.

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

Viewing 6 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic.