Если вы собираетесь проверить фиксированное количество символов, то вам следует проверить последние 4, иначе «file.Log» будет соответствовать «file.myLog».
Но лучший вариант - получить фактическое расширение независимо от длины:
@echo off setlocal set "var1=file.Log" set "var2=file.myLog" :: Option 1 using FOR loops for %%A in ("%var1%") do for %%B in ("%var2%") do if "%%~xA"=="%%~xB" ( echo Match ) else ( echo No Match ) : Option 2 using CALL parameters call :matchExtension "%var1%" "%var2%" &&echo Match||echo No Match exit /b :matchExtension file1 fil2 --> returns 0 (success) if match, 1 (error) if no match if "%~x1"=="%~x2" exit /b 0 exit /b 1