Valek271183 |
23-02-2014 01:21 2313984 |
Как вывести список установленных программ
Как можно с помощью CMD записать в текстовый файл установленные программы из списка Удаление программ или меню пуск?
|
Цитата:
Цитата Valek271183
Как можно с помощью CMD »
|
А другие варианты устроят?
|
Valek271183 |
23-02-2014 01:29 2313989 |
хотелось бы конечно через CMD, потому что будет частью другого файла, это возможно?
|
Только отчасти:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
>nul chcp 1251
for /f "usebackq delims=" %%i in (
`reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayName" 2^>nul ^| find.exe /i "DisplayName"`
) do echo %%~j %%k
>nul chcp 866
endlocal
exit /b 0
|
Valek271183 |
28-02-2014 15:47 2317293 |
Iska, подскажите, можно ли очистить получившийся список с программами от определённых строк, например после запуска вышеуказанной команды на рабочем столе создаётся список установленных программ и некоторые из них повторяются, например очень много сток с : Microsoft Visual C++ 2010 такой-то, Microsoft Visual C++ 2012 такой-то, нельзяли удалить строки начинающиеся с Microsoft Visual C++ ?
|
Цитата:
Цитата Valek271183
и некоторые из них повторяются, например очень много сток с : Microsoft Visual C++ 2010 такой-то, Microsoft Visual C++ 2012 такой-то »
|
Покажите в виде текста.
Цитата:
Цитата Valek271183
нельзяли удалить строки начинающиеся с Microsoft Visual C++ ? »
|
Зачем?
|
Valek271183 |
28-02-2014 16:09 2317309 |
Примерно так
читать дальше »
Пакет драйверов Windows - ASUS (ATP) Mouse (10/13/2012 1.0.0.146)
TNod User & Password Finder
WinRAR 5.00 (64-разрядная)
Microsoft Visual C++ 2005 Redistributable - x64 8.0.56336 False
Microsoft .NET Framework 4.5.1 (RUS)
Microsoft Visual C++ 2010 Redistributable - x64 10.0.40219
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729 False
Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.60610 False
Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022.0 False
Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.61030
Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.51106 False
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4148 False
Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.51106 False
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161
Центр устройств Windows Mobile
Microsoft Visual C++ 2005 Redistributable - x64 8.0.59192 False
Microsoft Visual C++ 2005 Redistributable - x64 8.0.50727.42 False
Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.60610 False
Microsoft .NET Framework 4.5.1
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.17 False
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.5570 False
Microsoft Silverlight
Microsoft Office Office 64-bit Components 2007
Microsoft Office Shared 64-bit MUI (Russian) 2007
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.4048 False
Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.21005
Microsoft .NET Framework 4.5.1 (Русский)
Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.50727 False
Microsoft Visual C++ 2013 x64 Minimum Runtime - 12.0.21005
Microsoft Visual C++ 2005 Redistributable - x64 8.0.51011 False
Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.50727 False
Microsoft Visual C++ 2005 Redistributable - x64 8.0.61000
Панель управления NVIDIA 334.89
NVIDIA Графический драйвер 334.89
NVIDIA GeForce Experience 1.8.2.1
NVIDIA Optimus Update 11.10.13
NVIDIA Системное программное обеспечение PhysX 9.13.1220
Обновления NVIDIA 11.10.13
NVIDIA LED Visualizer 1.0
GeForce Experience NvStream Client Components
SHIELD Streaming
NVIDIA Аудиодрайвер HD 1.3.30.1
NVIDIA Install Application
NVIDIA Network Service
NVIDIA ShadowPlay 11.10.13
NVIDIA Update Core
NVIDIA Virtual Audio 1.2.20
ESET Smart Security
Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022.218 False
Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.61030
Microsoft Visual C++ 2008 Redistributable - x64 9.0.21022 False
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30411 False
Microsoft Visual C++ 2010 Redistributable - x64 10.0.30319 False
Microsoft Visual C++ 2005 Redistributable - x64 8.0.58298 False
Adobe Flash Player 12 ActiveX
Adobe Flash Player 12 Plugin
Google Chrome
K-Lite Mega Codec Pack 10.3.0
Navitel Navigator update center
Notepad++
Microsoft Office Стандартный 2007
STDU Viewer version 1.6.2.0
Total Commander 8.01 PowerPack
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.60610 False
Microsoft Visual C++ 2005 Redistributable - x86 8.0.58299 False
Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.50727 False
Microsoft Visual C++ 2013 x86 Minimum Runtime - 12.0.21005
Microsoft Visual C++ 2010 Redistributable - x86 10.0.30319 False
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148 False
Garmin Express
Garmin Express
Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.21005
Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.50727 False
Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.51106 False
ATKOSD2
Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.60610 False
ASUS Smart Gesture
Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.21005
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729 False
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4048 False
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30411 False
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.51106 False
Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.51106 False
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.50727 False
Microsoft Visual C++ 2005 Redistributable - x86 8.0.61001
Microsoft Visual C++ 2005 Redistributable - x86 8.0.56336 False
Skype™ 6.13
NVIDIA PhysX
Microsoft Visual C++ 2005 Redistributable - x86 8.0.59193 False
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.5570 False
Microsoft Office Standard 2007
Microsoft Office Excel MUI (Russian) 2007
Microsoft Office PowerPoint MUI (Russian) 2007
Microsoft Office Outlook MUI (Russian) 2007
Microsoft Office Word MUI (Russian) 2007
Microsoft Office Proof (German) 2007
Microsoft Office Proof (English) 2007
Microsoft Office Proof (Russian) 2007
Microsoft Office Proof (Ukrainian) 2007
Microsoft Office Proofing (Russian) 2007
Microsoft Office Shared MUI (Russian) 2007
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.17 False
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.6161
Microsoft Visual C++ 2005 Redistributable - x86 8.0.51011 False
Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.61030
Microsoft Visual C++ 2005 Redistributable - x86 8.0.50727.42 False
Google Update Helper
Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.61030
Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.61030
Realtek PCIE Card Reader
Elevated Installer
Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022 False
Microsoft Visual C++ 2012 Redistributable (x64) - 11.0.60610 False
Garmin Express Tray
Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022.218 False
Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.60610 False
Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.51106 False
Punto Switcher 3.2.9
Microsoft Visual C++ 2012 Redistributable (x86) - 11.0.61030
Microsoft Visual C++ 2010 Redistributable - x86 10.0.40219
Intel(R) Processor Graphics
Realtek High Definition Audio Driver
Microsoft Visual C++ 2013 x86 Additional Runtime - 12.0.21005
Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.50727 False
Microsoft Visual C++ 2008 Redistributable - x86 9.0.21022.0 False
|
Убрать «заглушки» ( Система - [addon] Microsoft Visual C++ 05-08-10-12-13 Redistributable Package x86 & x64)? Попробуйте так:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
>nul chcp 1251
for /f "usebackq delims=" %%i in (
`reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayName" 2^>nul ^| find.exe /i "DisplayName"`
) do echo %%~j %%k|findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$"
>nul chcp 866
endlocal
exit /b 0
|
Valek271183 |
28-02-2014 21:27 2317487 |
не получается сохранить на рабочем столе, в конце я писал
) do echo %%~j %%k >> "%userprofile%\Desktop\Список программ.txt"
как правильно добавить сюда |findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$" ?
|
Попробуйте так:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
>"%UserProfile%\Desktop\Список программ.txt" (
>nul chcp 1251
for /f "usebackq delims=" %%i in (
`reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayName" 2^>nul ^| find.exe /i "DisplayName"`
) do echo %%~j %%k|findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$"
>nul chcp 866
)
endlocal
exit /b 0
|
Valek271183 |
05-03-2014 17:24 2319573 |
что-то не срабатывает с Microsoft Visual C++
делаю так:
читать дальше »
@echo off
setlocal enableextensions enabledelayedexpansion
>nul chcp 1251
>"%UserProfile%\Desktop\Список программ.txt" (
for /f "usebackq delims=" %%i in (
`reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"`
) do for /f "usebackq tokens=3*" %%j in (
`reg.exe query "%%~i" /v "DisplayName" 2^>nul ^| find.exe /i "DisplayName"`
) do echo %%~j %%k|findstr.exe /i /v /r /c:"^Microsoft Visual C++ .* False$"
>nul chcp 866
)
endlocal
exit /b 0
|
Цитата:
Цитата Valek271183
что-то не срабатывает с Microsoft Visual C++ »
|
А что срабатывает? И с чем срабатывает?
Кстати, зачем поменяли местами «chcp 1251» с выводом в файл?
|
Valek271183 |
07-03-2014 17:55 2320511 |
Цитата:
Цитата Iska
А что срабатывает? И с чем срабатывает? »
|
всё равно в списке установленных программ отображается Microsoft Visual C++
Цитата:
Цитата Iska
зачем поменяли местами «chcp 1251» с выводом в файл? »
|
Чтобы слово %UserProfile%\Desktop\ Список программ.txt было на русском языке а не крякозябрами, а если не менять местами «chcp 1251» а поменять кодировку на OEM 866 то в результате в списоке программ программы на русском языке не правильно отбражаются
|
Цитата:
Цитата Valek271183
всё равно в списке установленных программ отображается Microsoft Visual C++ »
|
Valek271183, «Microsoft Visual C++» и должен отображаться. Я понял так, что Вам нужно только убрать «заглушки» — «Microsoft Visual C++ … False», о чём я спросил и привёл соответствующий код. Что не так?!
Цитата:
Цитата Valek271183
Чтобы слово %UserProfile%\Desktop\Список программ.txt было на русском языке а не крякозябрами, а если не менять местами «chcp 1251» а поменять кодировку на OEM 866 то в результате в списоке программ программы на русском языке не правильно отбражаются »
|
Чтобы «Список программ.txt» не был кракозябрами и результат в текстовом файле правильно отображался — верните Вашу правку вобрат, сохраняйте пакетные файлы в кодировке OEM/866 и используйте правильные редакторы.
|
Valek271183 |
16-03-2014 22:56 2324569 |
Iska, я пробовал в разных редакторах, создавал новую страницу в OEM 866, вставлял содержимое которое Вы написали, но в результате текстовый файл на рабочем столе создавался с русским названием Список программ, а его содержимое, где были русские буквы в названиях программ, отображались крякозябрами (если открыть этот Список программ обычным блокнотом)
|
Valek271183, пробуй сохранить через AkelPad -> сохранить как-> кодировка 866 (ОЕМ русская), все должно работать
|
Valek271183 |
17-03-2014 15:21 2324840 |
O L E G, спасибо, но я вчера уже попробовал, результат как я написал выше, в текстовом документе Список программ на рабочем столе проги с русскими названиями пишутся крякозябрами
|
Valek271183 |
18-03-2014 13:46 2325205 |
Iska, я не хотел только убрать «заглушки» — «Microsoft Visual C++, а очистить получившийся список программ от повторяющихся записей типа Microsoft Visual C++ , можно ли так сделать?
|
Valek271183, ясно. По поводу кодировки тоже увидел. Посмотрю.
|
Ну вы даете )))
из командной строки
WMIC
дальше
/?
и разберетесь.
Если просто в файл, то сразу:
WMIC /OUTPUT:List.txt PRODUCT LIST BRIEF
Получите файлик List.txt с искомым списком
|
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...")
|
Самое удачное видел только на 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);
}
.
|
alpap, imho ваше решение вообще из другой оперы :)
У нас тут топик CMD/BAT, а не JScript\VBScript, которые в разы побогаче
И задача Как вывести список установленных программ, а не "как вывести все папки в ProgramFiles" :)
|
Цитата:
Цитата oster2
а не "как вывести все папки в ProgramFiles »
|
Не все папки, а все из папки. Например, portable, как считать, установленными или нет, особенно если их ярлыки сидят для удобства в пуске. Скрипт js не проблема обернуть в bat, проблема на чистом cmd сделать то что хотите, так как на мое мнение даже использование, ничего не дающего в данном случае wmic, делает cmd "не чистым".
|
Цитата:
Цитата alpap
Например, portable, как считать, установленными или нет, особенно если их ярлыки сидят для удобства в пуске. »
|
Не считать. Установленными считаются приложения, перечисленные в реестре, как в разделе HKLM, так и HKCU.
|
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
и программы-то не все показывает, у меня есть установленные, но информации о ней в реестре, именно в ключе uninstall - нет, программа именно установлена. »
|
О каком приложении речь?
|
Цитата:
Цитата Iska
О каком приложении речь? »
|
Нет, все-таки это портабельное приложение у меня, перепутал.
Так что только один минус кода выше, не выводит полные пути установленной программы, а надо как-то прикрутить.
|
alpap, посмотрите по ключам в тех разделах реестра, которые я указал
Вам поможет InstallLocation (где он есть)
Где нет - можно пытаться распарсить DisplayIcon, но тут уже придётся изголяться, чтоб сделать только средствами BAT\CMD. Наверное, проще будет использовать JS\VB-script.
|
подскажите возможно ли , и как зделать чтоб вот такой скрипт кроме 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
и как зделать чтоб вот такой скрипт кроме DisplayName виводил и InstallDate »
|
Используйте (не проверялось):
Код:
for /F "tokens=1,2,*" %%a in ('reg query "%reg_key%" /s') do (
if "%%a" == "InstallDate" <nul set /p sVar=%%c
if "%%a" == "DisplayName" <nul set /p sVar=%%c
echo.
)
|
Код:
for /F "tokens=1,2,*" %%a in ('reg query "%reg_key%" /s') do (
if "%%a" == "DisplayName" echo %%c
if "%%a" == "InstallDate" echo %%c
)
можно заморочится и выводить в одну строчку, если надо
|
oster2, код перед Вашим сообщением именно так и делает.
|
Iska, отвлёкся на телефон пока писал ответ :)
А ваш код не выводит в одну строчку, а наоборот - добавляет много лишних переводов строки
|
Проверил. Именно так и есть.
Тогда так:
Код:
for /F "tokens=1,2,*" %%a in ('reg query "%reg_key%" /s') do (
if "%%a" == "DisplayName" echo.& <nul set /p sVar=%%c
if "%%a" == "InstallDate" <nul set /p sVar=;%%c
)
Минусом идёт одна пустая строка в начале вывода
|
Время: 10:55.
© OSzone.net 2001-