frid-karatel, если вы определяете переменную внутри блока кода ( цикл for, if и т.д. ), ограниченного скобками, то повторное использование этой переменной требует установки 'setlocal enabledelayedexpansion' и использование переменных, заключенных в '!' а не в '%'. В вашем батнике это должно быть так, не проверял:
Код:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "$BACKUP_DIR=S:\Backup"
SET "$WINRAR=C:\Program Files\WinRAR\WinRAR.exe"
SET "$MODIFIED_SINCE=20110323"
SET "$FOLDER:01=C:\Documents"
SET "$FOLDER:02=C:\Letters"
SET "$FOLDER:03=C:\ThirdFolder"
FOR /f "tokens=2 delims==" %%i IN ('SET $FOLDER') DO (
SET "$FOLDER_CURRENT=%%i"
PUSHD "!$FOLDER_CURRENT!"
FOR /f "tokens=1" %%i IN ('DIR /s /tw /a-d') DO (
IF NOT DEFINED $IS_MODIFIED CALL:@check %%i
)
POPD
IF NOT DEFINED $IS_MODIFIED GOTO:@continue
"%$WINRAR%" A -AG+YYYY-MM-DD CH -TL -DH -EP1 -ISNUL -M5 -S -Y "!$FOLDER_CURRENT!" ""
:@continue
REM
)
GOTO:@exit
:@check
FOR /f "tokens=1-3 delims=." %%i IN ("%1") DO (
IF %%k%%j%%i geq %$MODIFIED_SINCE% SET $IS_MODIFIED=1
)
GOTO:eof
:@exit
PAUSE