Polecenie IF pasuje do wszystkich znaków, łącznie z cudzysłowami - Thu
nie pasuje "Thu"
.
Więc jedno z poniższych będzie działać:
if %RDAY%==Thu ...
if "%RDAY%=="Thu" ...
EDYCJA - Właśnie zdałem sobie sprawę, że dodałeś cudzysłowy do wartości, kiedy zdefiniowałeś RDAY. Więc moja sugestia powyżej w kolorze żółtym nie jest całkiem poprawna. Wolę używać set "RDAY=%date:~0,3%"
, który nie dodaje cudzysłowów do wartości. Ale to bardziej kwestia stylu.
Zatem przypuszczalnie Twoja instrukcja IF nigdy nie jest prawdziwa, ponieważ twoja maszyna używa innego formatu dla %DATE%
wartości, która nie zaczyna się od skrótu dnia tygodnia
Istnieją jednak inne problemy ze skryptem:
Tylko twój wiersz dziennika jest warunkowy, skrypt czwartkowy będzie uruchamiany codziennie. Można to łatwo naprawić, dodając nawiasy do bloku IF
if %DATE:~0,3%==Thu (
echo "Starting Weekly Matching" >> %LOGFILE%
D:\New_Folder\SCRIPTTEST\Runthursday.bat
)
Format %DATE%
wartości zależy od ustawień regionalnych. Twój skrypt prawdopodobnie nie będzie działał na innym komputerze. Możesz użyć WMIC, aby łatwo ustalić, czy jest czwartek w sposób lokalny agnostyczny:
wmic path win32_localtime get dayofweek | findstr 4 >nul && (
echo "Starting Weekly Matching" >> %LOGFILE%
D:\New_Folder\SCRIPTTEST\Runthursday.bat
)
Ale mam do ciebie pytanie - dlaczego planujesz codzienne zadanie wsadowe, które uruchamia kolejną partia tylko w czwartek? Jeśli chcesz uruchomić zadanie wsadowe w czwartki, skorzystaj z Harmonogramu zadań systemu Windows, aby to zrobić. Nie ma potrzeby ustalania, czy w skrypcie wsadowym jest dzisiaj czwartek, niech planista wykona pracę.