Следующая строка должна иметь вот такой вид, а в оригинале там ошибка (применён не апостроф, а одинарная кавычка и отсутствует параметр usebackq) и поэтому команда не обрабатывается как надо. В итоге переменной lang ничего не присваивается.
Код:

rem язык ОС (419 - рус.)
rem !ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции
rem (ASCII-код символа после знака "равно" должен быть 09)
for /F "usebackq tokens=3 delims= " %%j in (`reg query "HKEY_CURRENT_USER\Control Panel\International" /v Locale`) do set lang=%%j
Sanja Alone
К сожалению в папке с каталогами безопасности тоже отсутствует часть обновлений и я предложил вытаскивать их из реестра, естественно более громоздко, но точнее.
Предлагаю вот так вытаскивать путь к дистрибутиву, так как на диске нельзя разместить несколько дистрибутивов в одной папке i386 и естественно они все разные.
Код:

::Считываем всю строку ключа "SourcePath" из реестра и присваеваем её переменной "WINNTSIF"
FOR /F "usebackq tokens=3 delims= " %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v SourcePath`) do set WINNTSIF=%%i
set WINNTSIF=%WINNTSIF:~2%
::Обеспечение правильности отработки мультизагрузочного CD/DVD
if exist "%CDROM%%WINNTSIF%\winn?.sif" (
set WINNTSIF=%CDROM%%WINNTSIF%\winn?.sif
)