|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Проверка по списку |
|
CMD/BAT - Проверка по списку
|
Новый участник Сообщения: 33 |
Профиль | Отправить PM | Цитировать
Привет. Есть команда DISM /Online /Get-Capabilities /Format:Table | find /i "Установлен"
Выводит компоненты установленные на ПК Есть лист (список) компонентов (ниже в коде) Задача - по списку прогнать компоненты этой командой и занести в переменную их имена (пример - OneCoreUAP.OneSync~~~~0.0.1.0), если компонент найден, если нет - пропуск Подскажите что тут править: @echo off rem Список компонентов, которые нужно проверить For %%A In (Hello.Face OpenSSH StepsRecorder ///остальные///) DO (set "ListComponent=%%A") echo %ListComponent% rem Тут должны быть компоненты rem Hello.Face rem OpenSSH rem StepsRecorder rem ///остальные/// rem Проверяем по очереди командой Dism и, если, компонент найден то заносим в переменную Component1/2/3 и тд, если не найден, пропускаем rem Эта команда из всего списка установленных компонентов выцепляет ТОЛЬКО имя компонента, убирая столбец "Установлен" for /f "tokens=1 delims=|" %%A in ('DISM /Online /Get-Capabilities /Format:Table ^| find /i "Установлен" ^| find /i "%ListComponent%"') do (set Component=%%A) if defined Component1 (echo %Component1%) else (echo Компонент такой-такой не найден) if defined Component2 (echo %Component2%) else (echo Компонент такой-такой не найден) if defined Component3 (echo %Component3%) else (echo Компонент такой-такой не найден) pause&exit |
|
Отправлено: 14:33, 19-01-2023 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать Powershell
$capInstalled = (Get-WindowsCapability -Online |? state -eq installed).name $capInstalled App.StepsRecorder~~~~0.0.1.0 App.Support.QuickAssist~~~~0.0.1.0 Browser.InternetExplorer~~~~0.0.11.0 DirectX.Configuration.Database~~~~0.0.1.0 Hello.Face.18967~~~~0.0.1.0 и т. д. |
------- Последний раз редактировалось DJ Mogarych, 19-01-2023 в 15:05. Отправлено: 14:54, 19-01-2023 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Идея в том, чтобы по определенному ранее сформированному списку (мне не нужен в списке MediaPlayer, например) найти установлен компонент или нет, а далее передать его в код для удаления
@echo off rem Список компонентов, которые нужно проверить For %%A In (Hello.Face OpenSSH StepsRecorder ///остальные///) DO (set "ListComponent=%%A") echo %ListComponent% rem Тут должны быть компоненты rem Hello.Face rem OpenSSH rem StepsRecorder rem ///остальные/// rem Проверяем по очереди командой Dism и, если, компонент найден то заносим в переменную Component1/2/3 и тд, если не найден, пропускаем rem Эта команда из всего списка установленных компонентов выцепляет ТОЛЬКО имя компонента, убирая столбец "Установлен" for /f "tokens=1 delims=|" %%A in ('DISM /Online /Get-Capabilities /Format:Table ^| find /i "Установлен" ^| find /i "%ListComponent%"') do (set Component=%%A) if defined Component1 (call :DelComponent) else (echo Компонент такой-такой не найден) if defined Component2 (call :DelComponent) else (echo Компонент такой-такой не найден) if defined Component3 (call :DelComponent) else (echo Компонент такой-такой не найден) pause&exit :DelComponent dism /Online /NoRestart /Remove-Capability /CapabilityName:Component1/2/3 goto:eof |
Отправлено: 16:46, 19-01-2023 | #3 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:01, 19-01-2023 | #4 |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Спасибо, попробую. На cmd бы еще, может кто-то подскажет
|
|
Отправлено: 19:00, 19-01-2023 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Проверка наличия файлов по списку и вызов контекстного действия | Stalker_AleX333 | Скриптовые языки администрирования Windows | 8 | 16-04-2020 20:59 | |
CMD/BAT - Удаление файлов по списку | Freddy1984 | Скриптовые языки администрирования Windows | 11 | 04-05-2017 08:36 | |
CMD/BAT - распределение файлов по папкам по списку | bellagio | Скриптовые языки администрирования Windows | 1 | 11-05-2014 13:14 | |
CMD/BAT - Перемещение файлов по списку | Arsenik77 | Скриптовые языки администрирования Windows | 4 | 04-12-2011 20:43 | |
V. 5.5/2000/2003 - задача по списку рассылки | Yampo | Microsoft Exchange Server | 14 | 18-03-2010 10:11 |
|