1

Тема: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

Нужна помощь, есть батник который отрабатывает для определенной программы, но проблема в том что он отрабатывает без разницы, установлена та программа или нет. Вот и хотелось бы добавить в такой батник строки которые бы проверяли наличие установленной программы, а только после отрабатывала бы его остальная часть. Можно ли это реализовать ?

2

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы


set "prog=C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE"
if exist "%prog%" (
    rem do something before launching
    start "" "%prog%" %*
    rem do something after
)
( 2 * b ) || ! ( 2 * b )

3 (изменено: artyom.liovin, 2015-09-23 11:19:29)

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

Rumata пишет:

set "prog=C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE"
if exist "%prog%" (
    rem do something before launching
    start "" "%prog%" %*
    rem do something after
)

Извиняюсь но че та не работает, если программа не установлена то остальная часть батника всё равно отрабатывает, остальная часть батника это вот эти строки (пример)

REG ADD "HKLM\SOFTWARE\122\12345" /f /v "Blob" /t REG_BINARY /d 11ab0000010000003b0000004b4c

reg import act.reg

4

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

Думать совсем не хотите. Там же написано

если программа существует
if exist "%prog%" (
    rem сделать что-то до запуска

    запустить программу
    start "" "%prog%" %*

    rem сделать что-то после
)

Вот вам инверсный вариант


set "prog=C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE"

rem если программы нет, то вывести сообщение об ошибке и завершить скрипт
if not exist "%prog%" (
    echo:ERROR: Binary not found: %prog%
    exit /b 1
)

rem программа есть - надо что-то сделать
start "" "%prog%" %*
( 2 * b ) || ! ( 2 * b )

5

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

Rumata
Спасибо большое при большое, теперь всё понятно, и всё работает

6

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

Если говорить всё же об установленных программах, а не оставшихся, например, после переустановки ОС в системной папке, то вариант должен быть примерно таким:

@echo off
for /f %%# in ('wmic Product WHERE 'Name Like "Microsoft Word%%"' Get InstallState /value^|find "="') do set "%%~#"
if "%InstallState%"=="5" (start winword) else start wordpad

Медленно, но верно.

7

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

Доброго времени суток. Нужна Ваша помощь в написании батника, так как в них совсем не разбираюсь. Долго искал решение моей проблемы, нашёл эту тему, но не разобрался в модернизации вышеразмещённого батника под свои нужды.

Мне нужен батник, который должен определить наличие установленной на компьютере программы, при её наличии ничего не делать, а при её отсутствии установить данную программу из указанной папки этого же компьютера.

Например, узнать установлена программа в директории:
C:\Program Files\LanGame++.exe

Если её нет, то установить её из директории:
C:\Games\LanGame_setup.exe

И возможно ли в одном батнике проверить таким же образом другие установленные программы?

Заранее спасибо за помощь!

8

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

ihoming
А что там сложного?
С проверкой файла:

@echo off
if not exist "C:\Program Files\LanGame++.exe" (start "" C:\Games\LanGame_setup.exe)

С проверкой установки:

@echo off
for /f %%# in ('wmic Product WHERE 'Name Like "LanGame+%%"' Get InstallState /value^|find "="') do set "%%~#"
if not "%InstallState%"=="5" (start "" C:\Games\LanGame_setup.exe)

9

Re: CMD/BAT: Запуск батника с проверкой на наличие установленной программы

Большое спасибо. Всё сработало!