Работать с датами в пакете намного сложнее, чем должно быть.
В этом случае есть одна команда, которая может упростить вашу работу.FORFILES имеет возможность обрабатывать файлы, которые были изменены с определенной даты.Используйте FORFILES /?
из командной строки, чтобы получить документацию по его использованию.
Эта простая команда выведет список всех файлов, которые были изменены сегодня:
forfiles /m * /d 0
Если найден хотя бы один файл, тогда ERRORLEVEL устанавливается в 0, иначе ERRORLEVEL устанавливается в 1.
У вас есть определенный файл, поэтому вы можете использовать
forfiles /m %filename% /d 0
if %errorlevel% == 0 (
echo The file was modified today
REM do whatever else you need to do
) else (
echo The file has not been modified today
REM do whatever else you need to do
)
Существует более краткий способ сделать выше,Оператор &&
используется для условного выполнения команд, если предыдущая команда была успешной, ||
используется для условного выполнения команд, если предыдущая команда не выполнена.Однако будьте осторожны, команды ||
также будут выполняться, если команда (ы) &&
не выполнена.
forfiles /m %filename% /d 0 && (
echo The file was modified today
REM do whatever else you need to do
) || (
echo The file has not been modified today
REM do whatever else you need to do
)