Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660

Оптимизировать и привести в порядок скрипт для удаления обновлений

17.11.2015, 19:06. Показов 3227. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вечер добрый

В одной из тем около полугода назад я давал ответ
Кликните здесь для просмотра всего текста
Цитата Сообщение от vavun Посмотреть сообщение
Создайте батник (*.bat) с таким содержимым и запустите.

List all updates
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
color 0A
mode con: cols=40 lines=12
setlocal enabledelayedexpansion
Set templist=%TEMP%\listTMP.txt
set list=%USERPROFILE%\Desktop\uninstall_updates.cmd
 
echo.
echo.
echo             Please wait
echo.
echo.
 
if exist %templist% del %templist%
if exist %list% del %list%
 
wmic qfe get hotfixid>>%templist%
 
call :1 "KB" "KB:"
echo                 DONE
timeout /t 3 /nobreak > nul
exit /b
 
:1
for /f "tokens=1* delims=]" %%a in ('find /v /n "" ^<"%templist%"') do (
if not "%%b"=="" (set line=%%b) else (set line=not)
 
set newline=!line:%~1=%~2!
set newline=!newline:not=!
 
echo wusa.exe /uninstall /!newline!/quiet /norestart>>%list%
)
::set templist=%list%
goto :eof

Или скачайте готовый Вложение 512271

После того, как он отработает, у вас на рабочем столе появится другой файл, с именем uninstall_updates.cmd

Запустите uninstall_updates.cmd от имени администратора и произойдет последовательное удаление всех обновлений (которые возможно удалить).

Перед выполнением настоятельно рекомендую создать резервную копию ОС и подумать еще раз нужно ли оно вам.
Скрипт проверялся на Win 7 x86.


Не смотря на то, что скрипт был составлен по-быстрому копипастом из готовых примеров ответ оказался достаточно популярен

и даже растиражировался http://www.winline.ru/articles... dows_7.php

Хотелось бы попросить у опытных форумчан, как можно было бы оптимизировать сие кривое поделие, поскольку хотелось бы заменить ту версию скрипта на что то более приличное, раз уж этим пользуется так много народу

Заранее спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2015, 19:06
Ответы с готовыми решениями:

Скрипт для удаления пустых папок.
Доброго времени суток.Напишите такой скрипт,буду очень благодарен.

Прямоугольную матрицу привести к квадратной путем удаления наим эл-тов каждой строки, сохраняя порядок
Сформировать в динамической памяти целочисленную матрицу размером N*M (N&amp;lt;M вводятся с клавиатуры). Получить квадратную матрицу порядка...

Как оптимизировать скрипт для сайта?
Пытаюсь оптимизировать скрипт для сайта, который вызывается миллионы раз в день 1. В чем лучше собирать консольное приложение для...

16
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
17.11.2015, 19:51
Лучший ответ Сообщение было отмечено vavun как решение

Решение

vavun, в принципе тоже самое
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
setlocal enabledelayedexpansion
 
for /f "delims=" %%a in ('wmic qfe get hotfixid ^|find /i "KB"') do (
set line=%%a
set line=!line: =!
call echo wusa.exe /uninstall /!line:KB=KB:! /quiet /norestart
)
pause
exit
1
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
17.11.2015, 20:00  [ТС]
sov44, спасибо )
Вопрос: а это что, и откуда взялось ? )
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
17.11.2015, 20:16

Не по теме:

обнова-дефочка :D



Добавлено через 46 секунд
У меня в выводе такого знака нет.
0
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
17.11.2015, 20:23  [ТС]
sov44, а у меня есть )
Я уже и разные кодировки пробовал, а он все равно есть ) Ума не приложу откуда
0
 Аватар для b0gus
739 / 337 / 134
Регистрация: 17.03.2014
Сообщений: 839
17.11.2015, 20:31
vavun, у меня отработало без символа "новая страница":
0
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
17.11.2015, 20:38  [ТС]
b0gus, да, я уже понял, что это где то у меня косячит ) Ищу

Добавлено через 5 минут
Нашел.

Косячит из-за этого твика

Code
1
2
3
4
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"AutoRun"="cls && reg query HKEY_USERS\\S-1-5-19\\Environment /v TEMP 2>&1 | findstr /I /C:REG_EXPAND_SZ 2>&1 > NUL && (color 0E) || (color 0A)"
Только странно оно как то косячит. Ну да ладно
0
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
17.11.2015, 21:01
vavun, это команда "CLS" такой символ выдаёт. Убери её, и "мистики" в выводе не будет.


Вот получение "Венеры" в чистом виде:

Windows Batch file
1
2
@for /f %%i in ('cls') do @echo.%%i
@pause>nul
.
2
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
17.11.2015, 21:10  [ТС]
Цитата Сообщение от ComSpec Посмотреть сообщение
это команда "CLS"
Я не знаю, что на это ответить
0
17.11.2015, 21:12

Не по теме:

wusa далеко не всегда все сносит к едрени фени, бывает что без dism'а иной пакет не удалишь.

0
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
17.11.2015, 22:39  [ТС]

Не по теме:

greg zakharov, может вы и правы, не сталкивался.



Добавлено через 30 минут
В общем мне нравится так

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@echo off
color 0A
mode con: cols=40 lines=20
setlocal enabledelayedexpansion
cd /d "%~dp0"
reg query "HKEY_USERS\S-1-5-19\Environment" /v TEMP 2>&1 | findstr /I /C:REG_EXPAND_SZ 2>&1 > NUL && (call :UNINSTUPD) || (call :NOADMIN)
>nul pause
 
:UNINSTUPD
echo.
echo.
echo              Please wait
echo.
echo.
 
echo Удаленные обновления %DATE%>>"%~n0_LOG.txt" 
>nul reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "UninstallUpdatesLog" /d "%~f0_LOG.txt" /f
for /f "delims=" %%a in ('wmic qfe get hotfixid ^|find /i "KB"') do (
   set line=%%a
   set line=!line: =!
   echo Удаляется !line:KB=KB:!
   REM call wusa.exe /uninstall /!line:KB=KB:! /quiet /norestart
   REM Имитация бурной деятельности
   >nul timeout 1
   echo %time:~0,-3% !line:KB=KB:!>> "%~n0_LOG.txt"
)
echo shutdown -r -t 0
exit /b
 
:NOADMIN
echo Перезапустите скрипт от имени администратора 
exit /b
Что убрать, что добавить, что изменить ?
"Опасные" места закоменнтировал пока что
sov44, вопрос: почему call а не start /wait например ?

Добавлено через 50 минут
Цитата Сообщение от ComSpec Посмотреть сообщение
это команда "CLS" такой символ выдаёт
Боюсь спросить: а как это было обнаружено ? )
На баг не похоже, а вот на "пасхалку" вполне тянет )
0
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
18.11.2015, 02:07
Лучший ответ Сообщение было отмечено vavun как решение

Решение

vavun,

1)
Windows Batch file
7
>nul pause& exit/b
(иначе всё, что ниже, снова будет снова исполнено, если кто-то уберёт команду "SHUTDOWN");

2)
Windows Batch file
25
   echo !time:~0,-3! !line:KB=KB:!>> "%~n0_LOG.txt"
(иначе время будет одно и то же).




Цитата Сообщение от vavun Посмотреть сообщение
Боюсь спросить: а как это было обнаружено ? )
На баг не похоже, а вот на "пасхалку" вполне тянет )


Этот факт известен... "в узких кругах".

Очевидно, разработчики рассудили так: раз команда очищает экран, то пусть и выводит венерический символ новой страницы.

Другой вопрос, как он "слепился" с обработанным выводом команды "WMIC"?

Поскольку команда "WMIC" выводит результаты в Юникоде, можно ожидать всяких "чудес" при обработке таких строк в цикле с "FOR".

Очевидно, первая строка и была обработана вместе с "прилипшим" к ней "зеркальцем".


Кстати, по этой же причине (вывод в Юникоде) sov44 использует перед командой "ЕCHO" команду "CALL", которая форматирует консольный вывод в визуально приемлимый.
1
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
18.11.2015, 03:07  [ТС]
Цитата Сообщение от ComSpec Посмотреть сообщение
иначе всё, что ниже, снова будет снова исполнено
Оу... упустил, благодарю

Цитата Сообщение от ComSpec Посмотреть сообщение
иначе время будет одно и то же
Действительно Снова спасибо.
Цитата Сообщение от ComSpec Посмотреть сообщение
команду "CALL", которая форматирует консольный вывод в визуально приемлимый
Тоже не знал )

Очень большое благодарю

Добавлено через 20 минут
Собсно, итог
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@echo off
color 0A
mode con: cols=41 lines=20
setlocal enabledelayedexpansion
cd /d "%~dp0"
reg query "HKEY_USERS\S-1-5-19\Environment" /v TEMP 2>&1 | findstr /I /C:REG_EXPAND_SZ 2>&1 > NUL && (call :UNINSTUPD) || (call :NOADMIN)
>nul pause& exit /b
 
:UNINSTUPD
echo.
echo              Please wait
echo.
echo По окончании компьютер будет перезагружен
echo.
 
echo Удаленные обновления %DATE%>>"%~n0_LOG.txt" 
>nul reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "UninstallUpdatesLog" /d "%~f0_LOG.txt" /f
for /f "delims=" %%a in ('wmic qfe get hotfixid ^|find /i "KB"') do (
   set line=%%a
   set line=!line: =!
   echo Удаляется !line:KB=KB:!
   start /wait wusa.exe /uninstall /!line:KB=KB:! /quiet /norestart
   echo !time:~0,-3!    !line:KB=KB:!>> "%~n0_LOG.txt"
)
shutdown /r /t 0
exit /b
 
:NOADMIN
echo.
echo.
echo Запустите скрипт от имени администратора 
>nul pause
exit /b
Пойдет ? )
0
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
18.11.2015, 03:33
Лучший ответ Сообщение было отмечено vavun как решение

Решение

Цитата Сообщение от vavun Посмотреть сообщение
Пойдет ? )


Цитата Сообщение от ComSpec Посмотреть сообщение
Поскольку команда "WMIC" выводит результаты в Юникоде, можно ожидать всяких "чудес" при обработке таких строк в цикле с "FOR".
Чтобы избежать таких "чудес", для разбора вывода команды "WMIC" применяют два цикла с "FOR" (второй -- вложенный), поэтому в твоём случае лучше использовать такой компактный вариант:

Windows Batch file
1
2
3
4
5
for /f %%a in ('wmic qfe get hotfixid^| more +1') do (
 for /f "tokens=* delims=KB" %%b in ("%%a") do (
  wusa.exe /uninstall /KB:%%b /quiet /norestart
 )
)
.
2
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
18.11.2015, 03:51  [ТС]
ComSpec, done.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
color 0A
mode con: cols=41 lines=20
setlocal enabledelayedexpansion
cd /d "%~dp0"
reg query "HKEY_USERS\S-1-5-19\Environment" /v TEMP 2>&1 | findstr /I /C:REG_EXPAND_SZ 2>&1 > NUL && (call :UNINSTUPD) || (call :NOADMIN)
>nul pause& exit /b
 
:UNINSTUPD
echo.
echo              Please wait
echo.
echo По окончании компьютер будет перезагружен
echo.
 
echo Удаленные обновления %DATE%>>"%~dp0UninstallUpdatesLog.txt" 
>nul reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "UninstallUpdatesLog" /d "%~dp0UninstallUpdatesLog.txt" /f
 
for /f %%a in ('wmic qfe get hotfixid^| more +1') do (
 for /f "tokens=* delims=KB" %%b in ("%%a") do (
  echo Удаляется KB:%%b
  REM start /wait wusa.exe /uninstall /KB:%%b /quiet /norestart
  echo !time:~0,-3!    KB:%%b>> "%~dp0UninstallUpdatesLog.txt"
 )
)
ECHO shutdown /r /t 0
exit /b
 
:NOADMIN
echo.
echo.
echo Запустите скрипт от имени администратора 
>nul pause
exit /b
Добавлено через 55 секунд
одобрямс ? )
1
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
18.11.2015, 04:07
Цитата Сообщение от vavun Посмотреть сообщение
одобрямс ? )


vavun, "одобрямс". Об испытаниях доложить!
2
 Аватар для vavun
10593 / 5556 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
18.11.2015, 04:17  [ТС]
ComSpec, всенепременно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2015, 04:17
Помогаю со студенческими работами здесь

Как оптимизировать скрипт для копирования фотографий в tar пакет?
Написал скрипт для копирования фотографий в tar пакет. find $dir -type f -name *orig* -exec tar -rf $file {} \; пакет весит уже...

Скрипт для удаления
Подскажите как написать скрипт, который будет удалять один файл каждый день, в определенное время. Сам в этом не силен, может кто подскажет.

FireBird скрипт для поиска и удаления '-', а затем для растановки его в нужных местах
Используется FireBird 2.0. Есть поле Варчар(40) . В нём есть номера телефонов в формате хх-ххх-хх-ххх, нужно их превратить в ххх-ххх-хх-хх ...

Скрипт для удаления файлов и папок
Собрал из кусков скрипт для удаления файлов и папок. Но проблема такая, если все указанные в скрипте файлы присутствуют в системе то он...

Скрипт для удаления приложений android
Мужики может есть более изящное решение, мое пробивает на ошибку syntax error: unexpected &quot;(&quot; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru