CMD/BAT - [решено] Инсталляция программы

Ответить
Аватара пользователя
interminable

CMD/BAT - [решено] Инсталляция программы

Сообщение interminable »

Есть папка с 3-мя файлами

1.exe

2.cfg

3.txt



Нужен bat файл, который запустит 1.ехе проинсталлирует программу, затем скопирует в созданную после инсталляции директорию файлы 2 и 3.
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Инсталляция программы

Сообщение alpap »

Если "1.exe" инсталлируется самостоятельно, без вмешательства (и процесс завершается) и известен путь и папка, которую он создает, можно так:



Код:

Код: Выделить всё

@echo on
set "in=papka_in"
set "out=papka_out"
set "p=1.exe"
start "" "%in%\1.exe"
cmd /c for /l %%i in () do for /f delims^^=^^" %%j in ('tasklist /fi "imagename eq %p%" /fo csv /nh') do if not "%%j"=="%p%" (if exist "%out%" (copy /y "%in%\2.cfg" "%out%" & copy /y "%in%\3.txt" "%out%")) & exit

.
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Инсталляция программы

Сообщение alpap »

Или так, при тех же условиях выше:



Код:

Код: Выделить всё

@echo on
set "in=papka_in"
set "out=papka_out"
start /b /wait "" "%in%\1.exe"
if exist "%out%" (copy /y "%in%\2.cfg" "%out%" & copy /y "%in%\3.txt" "%out%")
exit

.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Инсталляция программы

Сообщение Iska »

Цитата alpap:



Или так,
CMD/BAT - [решено] Инсталляция программы




Не «или» а только так. Со «start» и без «/wait» не будет никакого «после инсталляции», а именно что «сразу».
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Инсталляция программы

Сообщение alpap »

Цитата alpap:



for /l %%i in () do
CMD/BAT - [решено] Инсталляция программы




с этим будет, тем более я проверял перед тем как выложить.

Да, инсталляция пройдет, папка будет создана и как только процесс пропадет, скопируются файлы (с заменой, если такие будут), чем по ТЗ не так.
Аватара пользователя
gora

Re: CMD/BAT - [решено] Инсталляция программы

Сообщение gora »

Цитата Iska:



Не «или» а только так.
CMD/BAT - [решено] Инсталляция программы




Полностью согласен, но замечу, что даже наличие /wait не решает проблему на 100%.

Например, если 1.exe запустит родительский процесс, который распаковывает основной установщик во временную папку, а затем завершает процесс 1.exe и запускает дочерний процесс собственно установщика. В этом случае копирование может произойти в эту временную щель между двумя процессами и нужная для копирования папка еще не будет создана.
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Инсталляция программы

Сообщение alpap »

Цитата gora:



не решает проблему на 100%
CMD/BAT - [решено] Инсталляция программы




, можно еще кучу подводных камней найти, просто проводить инсталляцию как минимум с помощью cmd - по-моему перебор (и софта хватает по этой части вплоть до полного автомата)
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Инсталляция программы

Сообщение Iska »

Цитата gora:



но замечу, что даже наличие /wait не решает проблему на 100%.

Например, если 1.exe запустит родительский процесс, который распаковывает основной установщик во временную папку, а затем завершает процесс 1.exe и запускает дочерний процесс собственно установщика. В этом случае копирование может произойти в эту временную щель между двумя процессами и нужная для копирования папка еще не будет создана.
CMD/BAT - [решено] Инсталляция программы




Именно так Изображение.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»