Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как вывести список установленных программ

Ответить
Настройки темы
CMD/BAT - [решено] Как вывести список установленных программ

Старожил


Сообщения: 489
Благодарности: 13


Конфигурация

Профиль | Отправить PM | Цитировать


Как можно с помощью CMD записать в текстовый файл установленные программы из списка Удаление программ или меню пуск?

Отправлено: 01:21, 23-02-2014

 

Новый участник


Сообщения: 19
Благодарности: 1

Профиль | Отправить 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
по хорошему - сюда надо добавить проверку разрядности системы, удаление дубликатов, сортировку и удаление обновлений ("...update for...")

Отправлено: 17:08, 26-06-2016 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить 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
Благодарности: 1

Профиль | Отправить PM | Цитировать


alpap, imho ваше решение вообще из другой оперы
У нас тут топик CMD/BAT, а не JScript\VBScript, которые в разы побогаче
И задача Как вывести список установленных программ, а не "как вывести все папки в ProgramFiles"

Отправлено: 20:59, 26-06-2016 | #23


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата oster2:
а не "как вывести все папки в ProgramFiles »
Не все папки, а все из папки. Например, portable, как считать, установленными или нет, особенно если их ярлыки сидят для удобства в пуске. Скрипт js не проблема обернуть в bat, проблема на чистом cmd сделать то что хотите, так как на мое мнение даже использование, ничего не дающего в данном случае wmic, делает cmd "не чистым".

Отправлено: 22:25, 26-06-2016 | #24


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата alpap:
Например, portable, как считать, установленными или нет, особенно если их ярлыки сидят для удобства в пуске. »
Не считать. Установленными считаются приложения, перечисленные в реестре, как в разделе HKLM, так и HKCU.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:42, 26-06-2016 | #25


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить 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
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата alpap:
и программы-то не все показывает, у меня есть установленные, но информации о ней в реестре, именно в ключе uninstall - нет, программа именно установлена. »
О каком приложении речь?

Отправлено: 17:28, 27-06-2016 | #27


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата Iska:
О каком приложении речь? »
Нет, все-таки это портабельное приложение у меня, перепутал.
Так что только один минус кода выше, не выводит полные пути установленной программы, а надо как-то прикрутить.

Отправлено: 20:17, 27-06-2016 | #28


Новый участник


Сообщения: 19
Благодарности: 1

Профиль | Отправить PM | Цитировать


alpap, посмотрите по ключам в тех разделах реестра, которые я указал
Вам поможет InstallLocation (где он есть)
Где нет - можно пытаться распарсить DisplayIcon, но тут уже придётся изголяться, чтоб сделать только средствами BAT\CMD. Наверное, проще будет использовать JS\VB-script.

Отправлено: 22:32, 27-06-2016 | #29


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить 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
пример ESET Endpoint Antivirus -15.05.2016 (формат дати неважен)

Последний раз редактировалось vpatik, 08-12-2016 в 13:21. Причина: дополнение


Отправлено: 13:19, 08-12-2016 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как вывести список установленных программ

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход