Команда IF соответствует всем символам, включая кавычки -
Thu
не соответствует"Thu"
.Так что будет работать любое из следующего:
if %RDAY%==Thu ... if "%RDAY%=="Thu" ...
РЕДАКТИРОВАТЬ - Я только что понял, что вы добавили кавычки к значению, когда вы определили RDAY. Так что мое предложение выше желтым не совсем верно. Я предпочитаю использовать set "RDAY=%date:~0,3%"
, который не добавляет кавычки к значению. Но это больше вопрос стиля.
Так что, по-видимому, ваше утверждение IF никогда не будет верным, потому что ваша машина использует другой формат для %DATE%
значения, которое не начинается с сокращения дня недели
Но есть и другие проблемы с вашим скриптом:
Только ваша строка журнала является условной, сценарий четверга будет выполняться каждый день. Это легко исправить, добавив скобки в ваш блок IF
if %DATE:~0,3%==Thu ( echo "Starting Weekly Matching" >> %LOGFILE% D:\New_Folder\SCRIPTTEST\Runthursday.bat )
Формат %DATE%
значения зависит от локали. Ваш сценарий, скорее всего, не будет работать на другом компьютере. Вы можете использовать WMIC, чтобы легко определить, является ли это четверг независимо от локали:
wmic path win32_localtime get dayofweek | findstr 4 >nul && ( echo "Starting Weekly Matching" >> %LOGFILE% D:\New_Folder\SCRIPTTEST\Runthursday.bat )
Но у меня к вам вопрос: почему вы планируете ежедневное пакетное задание, которое запускает другой пакет только в четверг? Если вы хотите запускать пакетное задание по четвергам, используйте планировщик заданий Windows, чтобы сделать это. Нет необходимости определять, является ли сегодня четверг в вашем пакетном скрипте, пусть планировщик сделает всю работу.