Имя пользователя:
Пароль:
 

Название темы: Список обновлений KB
Показать сообщение отдельно

Аватара для Devils0411

Ветеран


Сообщения: 902
Благодарности: 51

Профиль | Отправить PM | Цитировать


Доработал код, но есть одно "но":
Код: Выделить весь код
@Echo off
SetLocal enabledelayedexpansion
if exist "%ProgramFiles(x86)%" (set bit=x64) else (set bit=x86)
Title Поиск отсутствующих обновлений для Windows %bit%
wmic qfe get HotFixID >temp.txt
.\iconv\iconv -c -f UTF-16LE -t CP866 temp.txt > CheckUpdates.txt
del /S /Q temp.txt >nul
for /f "Tokens=1 Delims=" %%a in ('FindStr /IB "KB" "CheckUpdates.txt"') do Call :files %%a
goto :EOF

:files
For /F "Tokens=2 Delims=-" %%b in ('Dir /B ".\%bit%\*.msu"') Do Call :matching %1 %%b

:matching
if "%1"=="%2" (echo Обновление %1 присутствует в папке %~dp0%bit%>>%~n0.log) 
if "%2"=="" (echo Обновление %1 отсутствует в папке %~dp0%bit%>>%~n0.log)
При %%a==%%b, должно происходить следующее сравнение значения переменной %%a с множеством значений переменной %%b, а получается так, что даже когда переменные %%a, и %%b равны, то сравнение %%a идет до тех пор, пока значения %%b не закончатся, и тогда выполняется условие ""=="".

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 10:52, 06-02-2012 | #11

Название темы: Список обновлений KB