The script you found seems correct to me if you start new lines in the correct position. You can add an echo statement before the if statement to see if cdate and mdate have the correct value. And check if the myprogram.bat file exists in the directory. Here is a modified version that shows this. Can you try this and post the output if it doesn't work?
@echo off
for %%F in (C:\TEST\myfile.avi) do (for /F %%D in ("%%~tF") do (set mdate=%%D))
for /F "tokens=2" %%D in ('date/t') do set cdate=%%D
echo cdate="%cdate%" mdate="%mdate%" current dir=%cd%
if "%cdate%"=="%mdate%" going to start myprogram.bat
if "%cdate%"=="%mdate%" start myprogram.bat
pause
edit
Here is a version that works regardless of regional settings. It is based on this decision.
@echo off
reg copy "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f > NUL
reg add "HKCU\Control Panel\International" /v sShortDate /d "yyMMdd" /f > NUL
for %%F in (C:\TEST\myfile.avi) do (for /F %%D in ("%%~tF") do (set mdate=%%D))
for /F "tokens=1" %%D in ("%date%") do set cdate=%%D
echo cdate="%cdate%" mdate="%mdate%" current dir=%cd% date="%date%"
reg copy "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f > NUL
if "%cdate%"=="%mdate%" start myprogram.bat
First, he backs up the shortdate format in the registry. Then he replaces it with yyMMdd. Now it looks for the file modification date and current date. before comparing dates, it restores the short date format.
source
share