Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/40: Рейтинг темы: голосов - 40, средняя оценка - 4.78
 Аватар для Briolin
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940

Как получить путь программы?

01.02.2016, 09:21. Показов 8776. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Использую команду
Windows Batch file
WMIC product get name,version
в консоли, для того что бы узнать список установленного ПО. Но выводиться список без путей(нужно узнать в каком каталоге установлена программа). Вопрос-есть ли команда которая выведет мне путь установленных программ?
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2016, 09:21
Ответы с готовыми решениями:

Как получить относительный путь к файлу?
Сообщение выделено из темы: https://www.cyberforum.ru/cmd-bat/thread844796.html Это самое печальное. Правда, если захотеть, можно...

Как получить путь из параметра реестра по умолчанию?
Возникла необходимость получить путь из реестра параметра (По умочанию) и копировать по этому пути файл. была идея сделать так: @echo...

Как от пути %~dp0 получить путь на один уровень выше?
есть путь C:\Folder1\Folder2\Folder3\admin\ который находится в переменной %~dp0 (путь к батнику), как от этого пути получить путь на...

5
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
01.02.2016, 13:59
Не думаю что wmic Вам нужен. Но, если не ограничить поиск и вывести таким образом все что установлено, то поверьте это будет очень много:
Windows Batch file
1
2
3
@echo off
for /f "delims=" %%i in ('dir /a-d /b /s "%Programfiles%\Microsoft Office\*.exe"') do echo.%%~i
pause>nul
.

Добавлено через 33 минуты
Если достаточно списка папок с ПО:
Windows Batch file
1
2
3
4
5
@echo off
for /d %%i in ("%Programfiles%\*") do echo.%%~i>>"list.txt"
::если есть что-то не в папке
::for /f "delims=" %%i in ('dir /a-d /b "%Programfiles%"') do echo.%%~i>>"list.txt"
pause>nul.
0
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
01.02.2016, 14:16
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Windows Batch file
1
wmic Product where InstallLocation!=Null get Name,Version,InstallLocation/value
1
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
01.02.2016, 16:14
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

ComSpec, с таким же успехом:
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
  setlocal
    set "key=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    for /f "tokens=2,*" %%i in (
      'reg query %key% /s ^| findstr /irc:"installlocation"'
    ) do if "%%j" neq "" echo:%%j
  endlocal
exit /b
1
 Аватар для Briolin
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
02.02.2016, 06:39  [ТС]
А вот команда WMIC берёт данные из раздела реестра "unistall". Как мне оттуда узнать путь программы установленной?
0
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
02.02.2016, 09:56
Если бы WMIC брал данные из значений реестра по пути HKLM\SOFTWARE\Microsoft\Windows\CurrentV ersion\Uninstall (а также из аналогичной ветви в HKCU), тогда бы помимо прочего отображались пакеты, развернутые инсталляционными системами, отличными от тех, что напрямую взаимодействуют с msiexec. Иначе как объяснить тот факт, что программа, установщик которой представляет собой, например, NSIS пакет, прописав все необходимые значения в реестре, остается невидимой для WMIC?!
Если же просто обращаться к реестру:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
  setlocal
    set "i=0"
    for %%i in (%*) do set /a "i+=1"
    if %i% neq 1 echo:Index is out of range.&goto:eof
    set "key=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    set "itm=%key%\%%i"
    for /f "tokens=7 delims=" %%i in (
      'reg query %key% ^| findstr /virc:"kb[0-9].*"'
    ) do (
      for /f "tokens=2,*" %%j in (
        '2^>nul reg query %itm% ^| findstr /irc:"displayname"'
      ) do (
        (echo %%k | findstr /i %1>nul)&&(
          for /f "skip=3 tokens=2,*" %%l in (
            '2^>nul reg query %itm% /v installlocation'
          ) do echo:%%m&goto:eof
        )
      )
    )
  endlocal
exit /b
Пример работы:
Code
1
2
E:\sandbox> reglocator.cmd far
E:\Programs\Far Manager\
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.02.2016, 09:56
Помогаю со студенческими работами здесь

Как получить путь к файлу?
С праздниками! Собственно вопрос темы в ее названии. Возможно ли это в PS 2.0? В Сети встречал много подобных вариантов, но именно моего...

Как получить текущий путь и сохранить его в переменную?
Добрый день. Подскажите, как получить текущий путь, сохранить его в переменную, чтоб потом с ним работать спасибо Добавлено через...

Как получить полный путь до запускаемой программы
До запускаемой программы вместе с ее названием и расширением? Ну типа так: fullFileName := 'C:\Program...

Как получить путь к файлу, который был открыт с помощью моей программы
Как получить путь к файлу, который был открыт с помощью моей программы? Например я открыл картинку с помощью моей программы, и в ней...

Как проверить запуск программы по двойному клику на файл и получить путь до этого файла?
Здравствуйте! Подскажите советом ) У меня прога работает с файлом... ну к примеру тхт... не так важно с каким... при запуске проги...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru