VladoSer
19-01-2023, 14:33
Привет. Есть команда DISM /Online /Get-Capabilities /Format:Table | find /i "Установлен"
Выводит компоненты установленные на ПК
https://i.imgur.com/m9VigY5.png
Есть лист (список) компонентов (ниже в коде)
Задача - по списку прогнать компоненты этой командой и занести в переменную их имена (пример - 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
Выводит компоненты установленные на ПК
https://i.imgur.com/m9VigY5.png
Есть лист (список) компонентов (ниже в коде)
Задача - по списку прогнать компоненты этой командой и занести в переменную их имена (пример - 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