IF komutu, tırnak işaretleri dahil tüm karakterlerle eşleşir - Thu
eşleşmiyor "Thu"
.
Yani aşağıdakilerden herhangi biri işe yarayacak:
if %RDAY%==Thu ...
if "%RDAY%=="Thu" ...
DÜZENLE - RDAY'yi tanımladığınızda değere teklifler eklediğinizi farkettim. Bu yüzden yukarıdaki sarı önerim tam olarak doğru değil. Kullanmayı tercih ederim set "RDAY=%date:~0,3%"
, değere tırnak eklemez. Ama bu daha çok stil meselesi.
Bu nedenle, muhtemelen IF ifadeniz asla doğru olmaz, çünkü makineniz için farklı bir format kullanır. %DATE%
haftanın günü kısaltmasıyla başlamayan değer
Ancak komut dosyanızla ilgili başka sorunlar var:
Sadece log hattınız şartlı, Perşembe senaryosu her gün çalışacak. Bu, IF bloğunuza parantez ekleyerek kolayca düzeltilebilir
if %DATE:~0,3%==Thu (
echo "Starting Weekly Matching" >> %LOGFILE%
D:\New_Folder\SCRIPTTEST\Runthursday.bat
)
Formatı %DATE%
değer yerel ayarlara bağlıdır. Komut dosyanız büyük olasılıkla başka bir makinede çalışmayacak. WMIC’i kullanarak Perşembe olup olmadığını yerel olarak agnostik bir şekilde belirlemek için kullanabilirsiniz:
wmic path win32_localtime get dayofweek | findstr 4 >nul && (
echo "Starting Weekly Matching" >> %LOGFILE%
D:\New_Folder\SCRIPTTEST\Runthursday.bat
)
Ama sana bir sorum var - Neden sadece Perşembe günü başka bir parti yürüten günlük bir parti işi planlıyorsun? Perşembe günleri toplu iş yapmak istiyorsanız, bunu yapmak için Windows Görev Zamanlayıcı'yı kullanın. Bugün toplu iş komut dosyasınızda Perşembe olup olmadığını belirlemenize gerek yok, zamanlayıcının işi yapmasına izin verin.