1. В выложенных XML-файлах все значения оказались не в двойных кавычках, как приводится в условиях задачи, а в одинарных, что, "мягко выражаясь", наводит на мысль об использовании в циклах во избежание всяческих недоразумений (снова "мягко выражаясь") другой семантики (ключ "usebackq" и обратные одинарные кавычки).
2. В отличие от условий задачи, слеш и закрывающая угловая скобка в конце строк в файле
prefs.xml (он же --
settings.xml) не отделены пробелом от остальной части строки, а пробел -- зто первое, что приходит в голову при назначении разделителей.
3. С кодировками у файлов все в порядке -- не Unicode (слава Богу).
4. Если выложенные файлы копировались синхронно, то не факт, что для числового значения из файла
prefs.xml (он же --
settings.xml) в файле status.xml (он же --
stat.xml) статус будет "offline" или "online",-- в выложенном файле для искомого значения статус "available".
5. Непонятно, хорошо это или плохо, если для двух, как минимум, значений статус будет "online".
С учётом первых четырёх пунктов BAT-файл был практически полностью переделан.
Код:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION>status_new.xml
SET SettingsFile=prefs.xml
SET StatusFile=status.xml
FOR /F "usebackq tokens=6 delims='" %%I IN (`FINDSTR /C:"<pref name='default' type='int' value='" "%SettingsFile%"`) DO (
FOR /F "usebackq tokens=1,7 delims=:'" %%J IN (`FINDSTR /N %%I "%StatusFile%"`) DO (
IF %%K==%%I (
SET /A VAR1=%%J+1
SET /A VAR2=%%J+4
)))&&^
FOR /F "usebackq tokens=1* delims=:" %%I IN (`FINDSTR /N /R . "%StatusFile%"`) DO (
IF %%I==!VAR1! (
ECHO ^<state^>online^</state^>>>status_new.xml
) ELSE (
IF %%I==!VAR2! (
ECHO ^<state^>online^</state^>>>status_new.xml
) ELSE (
SET /P "VAR3=%%J" 0>nul 1>>status_new.xml
ECHO.>>status_new.xml
)))&&^
TYPE status_new.xml>"%StatusFile%"
DEL status_new.xml