|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как вывести список установленных программ |
|
CMD/BAT - [решено] Как вывести список установленных программ
|
Старожил Сообщения: 489 |
Профиль | Отправить PM | Цитировать Как можно с помощью CMD записать в текстовый файл установленные программы из списка Удаление программ или меню пуск?
|
|
Отправлено: 01:21, 23-02-2014 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать PythonJ, практика показывает, что WMIC PRODUCT выводит далеко не полный список. подробнее можно посмотреть вот тут: https://sdmsoftware.com/group-policy...t-is-bad-news/
приведенный в начале топика скрипт не покажет программы, установленные локальным пользователем и 32битные программы на 64битной системе. Вот более полный вариант: @echo off call :get_soft_list hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall call :get_soft_list hklm\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall call :get_soft_list hkcu\Software\Microsoft\Windows\CurrentVersion\Uninstall goto the_end :get_soft_list %1 for /F "tokens=1,2,*" %%a in ('reg query "%1" /s') do ^ if "%%a" == "DisplayName" echo %%c exit /b :the_end |
Отправлено: 17:08, 26-06-2016 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Самое удачное видел только на js:
// Скрипт Pf.js для получения содержимого папки %Programfiles% var ShellAp, objFolder, objFolderItem, list, objItem, colItems; var FSO, TempPath, TxtFile; // получаем доступ к объекту Shell.Application ShellAp = WScript.CreateObject("Shell.Application"); // получение объекта виртуальной папки проводника objFolder = ShellAp.Namespace(38); //Получаем объект FolderItem для текущей папки objFolderItem = objFolder.Self; list = "Содержимое папки:\n"; list +=objFolderItem.Path + "\n\n"; // получаем доступ к коллекции папок colItems = new Enumerator(objFolder.Items()); //составляем список системных каталогов for (; !colItems.atEnd(); colItems.moveNext()){ list += colItems.item().Path+ "\n"; } ShowInNotepad(list) //Функцияя временного файла с данными function ShowInNotepad(StrToFile){ FSO = WScript.CreateObject("Scripting.FileSystemObject"); TempPath = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") + "\\" + FSO.GetTempName(); TxtFile = FSO.CreateTextFile(TempPath); TxtFile.WriteLine(StrToFile); TxtFile.Close(); WScript.CreateObject("WScript.Shell").Run ("notepad.exe " + TempPath); } |
Отправлено: 17:55, 26-06-2016 | #22 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать alpap, imho ваше решение вообще из другой оперы
У нас тут топик CMD/BAT, а не JScript\VBScript, которые в разы побогаче И задача Как вывести список установленных программ, а не "как вывести все папки в ProgramFiles" |
Отправлено: 20:59, 26-06-2016 | #23 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата oster2:
|
|
Отправлено: 22:25, 26-06-2016 | #24 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата alpap:
|
|
Отправлено: 22:42, 26-06-2016 | #25 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать oster2,
Ну попробовал ваш код: @echo off set "key1=hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" set "key2=hklm\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" set "key3=hkcu\Software\Microsoft\Windows\CurrentVersion\Uninstall" >>"file.txt" ( for %%a in (%key1%,%key2%,%key3%) do @( for /f "tokens=2*" %%b in ('2^>nul reg query "%%a" /s^|find "DisplayName"^|find/v "Microsoft Visual C++"') do @echo:%%c ) ) exit Пути не показывает и программы-то не все показывает, у меня есть установленные, но информации о ней в реестре, именно в ключе uninstall - нет, программа именно установлена. Так что на мой взгляд просмотр в папке %Programfiles%, нужен тоже, смотря для каких целей, конечно. |
Последний раз редактировалось alpap, 27-06-2016 в 15:35. Отправлено: 15:16, 27-06-2016 | #26 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата alpap:
|
|
Отправлено: 17:28, 27-06-2016 | #27 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Так что только один минус кода выше, не выводит полные пути установленной программы, а надо как-то прикрутить. |
|
Отправлено: 20:17, 27-06-2016 | #28 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать alpap, посмотрите по ключам в тех разделах реестра, которые я указал
Вам поможет InstallLocation (где он есть) Где нет - можно пытаться распарсить DisplayIcon, но тут уже придётся изголяться, чтоб сделать только средствами BAT\CMD. Наверное, проще будет использовать JS\VB-script. |
Отправлено: 22:32, 27-06-2016 | #29 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать подскажите возможно ли , и как зделать чтоб вот такой скрипт кроме DisplayName виводил и InstallDate
@echo off rem Этот командный файл записывает список программ, установленных на rem удалённом компьютере. rem %1 Сетевое имя компьютера в формате PCNAME (пустое значение означает rem локальный компьютер). rem Определяем путь к папке реестра set reg_key=hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall if not "%1" == "" set reg_key=\\%~1\%reg_key% rem Перебираем установленные программы for /F "tokens=1,2,*" %%a in ('reg query "%reg_key%" /s') do ^ if "%%a" == "DisplayName" echo %%c |
Последний раз редактировалось vpatik, 08-12-2016 в 13:21. Причина: дополнение Отправлено: 13:19, 08-12-2016 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Delphi - [решено] Адекватный список установленных программ | McLotos | Программирование и базы данных | 6 | 01-09-2013 18:16 | |
Интерфейс - [решено] Пустой список установленных программ и надпись "Подождите, идет построение списка..." | ab | Microsoft Windows 2000/XP | 13 | 22-07-2013 13:21 | |
Прочие БД - Подскажите как в ADODB вывести список запросов. | Igor_I | Программирование и базы данных | 2 | 04-12-2009 20:47 | |
Разное - Как получить список установленных программ с удалённой раб. станции? | a1r | Microsoft Windows 2000/XP | 3 | 10-10-2009 13:08 | |
Пропал список установленных программ из меню пуск. | denmin | Microsoft Windows 95/98/Me (архив) | 3 | 17-03-2005 08:09 |
|