datebatch-filelast-modified

Comparing a modified file date with the current date in a batch file


I'm required to write a batch file to do a few things

Initially I thought my problem was very simple - capture the modified date of a txt file located in a specified directory, compare that date to the current date and if they are the same do something. If they are not then do something else.

The line I use to capture the current date is:

%date%

The lines I use to capture the modified date of my specified file is:

SET filename="C:\New Folder\New.txt"
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf
ECHO %filedatetime:~0,-6% >> %destination%

In the above case I'm simply using echo to see what is returned and it seems as if the date is returned but I get extra information:

2012/02/19 02

I would like to know how to get the above values where they are comparable as well as how to compare them properly.


Solution

  • I like dbenham's way, but if you want to make your code work you can do like this:

    set currentDate=%date%
    SET filename="C:\MyFile.txt"
    
    FOR %%f IN (%filename%) DO SET filedatetime=%%~tf
    IF %filedatetime:~0, 10% == %currentDate% goto same
    
    goto notsame
    
    :same
    echo Dates the same, do some code here
    
    goto next
    
    :notsame
    echo Dates NOT the same, do some code here
    goto end
    
    :next
    

    Thought it would be worth knowing how to make yours work just in case you need it again.