4 / 4 / 0
Регистрация: 04.04.2015
Сообщений: 174

Bat-файл для вывода списка установленных программ

27.11.2016, 11:22. Показов 11842. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В cmd это делается в следующей последовательности:

1. вводится команда
Code
1
wmic
;

2. вводится команда
Code
1
product get name,version
(для просмотра списка на экране) или
Code
1
/output:D:\appsfile.txt product get name,version
(для сохранения списка в файл).

Как оформить вызов
Code
1
wmic
и ввод в ней
Code
1
product get name,version
в виде скрипта?

Добавлено через 4 минуты
Примечание: почему-то не прописался диск, перед :\appsfile.txt должна быть буква D.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2016, 11:22
Ответы с готовыми решениями:

Копирование списка установленных программ в текстовый файл
Кто подскажет как список установленных программ из меню "Установка и удаление" скопировать в текстовый файл. Спасибо

.bat файл для удаления программ, папок и файлов
Добрый день! Есть задачу - нужно с ПК Windows 10 домашняя удалить унинсталлом 5 программ, папку с файлами и ярлыки на рабочем столе. ...

Есть ли в убунту что-нибудь вроде списка установленных программ как в винде?
Ну, понятно, банальный вопрос для виндо-свитчера)) тем не менее, кажется, в убунте нет такой свободы для бинарных экзешников, как в винде,...

3
 Аватар для volodin661
6368 / 2192 / 342
Регистрация: 10.12.2013
Сообщений: 7,516
27.11.2016, 11:45
текстовый файл с расширением .cmd или .bat будет восприниматься интерпретатором cmd
как исполняемый.

Добавлено через 6 минут
вместо wmic целесообразно пользоваться соответствующими cmdlet-ами powershell.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
27.11.2016, 17:55
Во-первых, команда:
Windows Batch file
1
wmic product get name, version /format:list
возвращает данные только о тех пакетах, что были развернуты в системе с помощью msiexec; эти данные как правило можно отыскать в реестре (HKLM\SOFTWARE\Microsoft\Windows\Current Version\Installer) а также извлечь из деинсталляционных БД (%systemroot%\Installer). Во-вторых, если отталкиваться от личного опыта, были прецеденты, когда wmic при запросе вывести список пакетов просто-напросто вешал систему, иенно по этой причине даже большинство буржуинов рекомендуют не пользоваться данной командой, а использовать альтернативные подходы (о них чуть позже). В-третьих, сама по себе постановка вопроса довольно странная, так как для того, чтобы получить список пакетов через wmic не нужно поочередно вводить wmic, затем product get name, version, достаточно написать:
Windows Batch file
1
wmic product get name, version /format:list >> D:\appsfile.txt
Об альтернативных подходах. Команда выше работает, мягко говоря, медленно ввиду ряда довольно замысловатых проверок, помимо прочего в коде wmic есть несколько косяков, кочующих от одной версии винды к следующей, но не соль важно. Чтобы сэкономить время, нервы и деньги, лучше воспользоваться WinAPI (msi.dll), и вот здесь каждый волен решать сам какие средство автоматизации или язык программирования использовать. В PowerShel, например, вопреки расхожему мнению, что для PInvoke требуется создавать динамическую сборку в памяти, можно вполне обойтись обобщенными делегатами в купе с рефлексией.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,695
13.04.2017, 15:54
Батник сами напишите. Опробовано на XP HE 32 SP3. Решил поделиться.

Чтобы вывести список установленных программ, например, в текстовый файл, необходимо сделать следующее. Во-первых, договоримся, что получаемый список должен будет дублировать список в окне “Установка и удаление программ” (далее “окно У”) БЕЗ галки “Показать обновления”.

Получаемые данные будем считывать из реестра. Где именно они находятся, на этот счёт я никакой документации не нашёл, поэтому вся инфа получена опытным путём и нуждается в тщательной дополнительной проверке. Дальнейшие утверждения о том, в каком разделе реестра какие данные находятся, следует читать “определены, что находятся”

В реестре имеется раздел HKLM\Software\Microsoft\Windows\CurrentV ersion\Uninstall. В этом разделе есть ряд подразделов. Находятся они НЕРЕКУРСИВНО. Каждый такой подраздел в общем случае соответствует одной установленной программе. В каждом таком подразделе существуют несколько параметров, которые напрямую влияют на то, будет выведена информация о программе в окно У или нет. Вот эти параметры:

DisplayName; если этого параметра нет или он нулевой, тогда в окно У ничего не выводится
ParentKeyName если этот параметр есть и он ненулевой, тогда в окно У ничего не выводится
SystemComponent если этот параметр есть и он имеет тип REG_DWORD и он равен 1, тогда в окно У ничего не выводится.

Обрабатывая раздел HKLM\Software\Microsoft\Windows\CurrentV ersion\Uninstall должным образом, можно программно получить список, который ЧАСТИЧНО дублирует список в окне У

++++++++++++++++++++++++++++++++++++++++ ++++=

“Частично” означает, что оставшиеся пункты находятся в другом месте, а именно, в разделе
HKCU\Software\Microsoft\Windows\CurrentV ersion\Uninstall. Подразделы этого раздела нужно тоже программно обработать указанным способом и, соединив два списка, мы получаем полный список установленный программ, как в окне У

++++++++++++++++++++++++++++++++++++++++ ++++=

Не уверен, что раздел HKCU\Software\Microsoft\Windows\CurrentV ersion\Uninstall нужно обрабатывать на предмет параметров ParentKeyName и SystemComponent. Быть может, это лишнее. Надо проверять дополнительно.

++++++++++++++++++++++++++++++++++++++++ ++++=

Дополнительная информация:

1) Если в подразделах раздела
HKCU\Software\Microsoft\Windows\CurrentV ersion\Uninstall и
HKLM\Software\Microsoft\Windows\CurrentV ersion\Uninstall
Присутствует непустой параметр UninstallString, то это команда, которая вызывается при удалении программы.

2) Если есть параметр ParentKeyName и он ненулевой, тогда, если поставить галку “Показать обновления”, соответствующая программа будет показана именно как обновление. Причём её родительским элементом будет содержание параметра ParentDisplayName; если параметр ParentDisplayName пуст или отсутствует, тогда всё равно эта программа будет отображаться как обновление. Либо с пустым родителем, либо вообще без него.

Проверяйте и пишите сюда об ошибках.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2017, 15:54
Помогаю со студенческими работами здесь

BAT-файл для вывода информации об исполняемых файлах
Помогите,. пожалуйста, с задачкой:boredom: Разработать пакетный файл для вывода информации в файл о всех имеющихся исполняемых файлах в...

Записть список установленных программ в файл
Доброго всем дня. Подскажите как вывести данные в файл а не в консоли. Заранее спасибо! using System; using System.Management; ...

Как получить список всех установленных программ с ссылками на их исполняемый файл?
Добрый день. Необходимо узнать название всех установленных приложений в Windows и пути к их исполняемым файлам. В поисках решения данной...

Разработать командный файл для вывода в файл списка всех вложенных директорий заданного каталога
Здравствуйте,помогите пожалуйста разработать файл для вывода в файл списка всех вложенных директорий заданного каталога (директория...

Распаковка/упаковка установленных программ для освобождения места на системном диске
Доброго, используются программы в установленном виде весят около 30 ГБ и более. Системный диск - ssd на 240 ГБ - мест не хватает. Программы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Динамические массивы в C++ - создание и использование
NullReferenced 27.04.2025
Динамические массивы представляют собой один из фундаментальных инструментов программирования на C++, позволяющий создавать структуры данных, размер которых определяется во время выполнения. . .
Асинхронный JavaScript: Промисы, Async/Await и Fetch API
Reangularity 27.04.2025
Пользователь заходит на веб-страницу, нажимает кнопку и. . . ничего не происходит. Сайт словно замер. Через несколько секунд всё внезапно оживает, но пользователь уже успел закрыть вкладку. Знакомая. . .
Management on GitLab and repository management in Visual Studio code
jigi33 27.04.2025
- repo management on GitLab - CI/ CD in GitLab - VCS repository management in Visual Studio code (see attachments)
Kanban или Scrum - что выбрать?
EggHead 27.04.2025
Kanban и Scrum — уже много лет удерживают лидирующие позиции среди гибких подходов. Руководители проектов и команды разработчиков то и дело сталкиваются с дилеммой: какой из этих двух методов выбрать. . .
Кастомные Middleware на C# в ASP.NET Core
UnmanagedCoder 27.04.2025
Разработка веб-приложений сегодня мало напоминает монолитное программирование прошлых лет. На смену громоздким блокам кода пришла модульная архитектура, где каждый компонент выполняет строго. . .
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru