Команда 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, чтобы сделать это. Нет необходимости определять, является ли сегодня четверг в вашем пакетном скрипте, пусть планировщик сделает всю работу.