Войти

Показать полную графическую версию : [решено] Не работает команда start в bat-файле, запускаемом с помощью psexec


smitsaec
05-03-2019, 21:27
Добрый день.

Моя задача состоит в инсталляции приложения на удаленном компьютере, предварительно проверив, что его текущая версия устарела.
На удаленном компьютере есть расшаренная папка c:\TestAutoInstall
Инсталлятор %FileName% = *.exe (Inno Setup)
Делаю следующим образом (через два бат-файла):
1. В первом произвожу некоторые действия + копирую инсталлятор в расшаренную папку на удаленной машине.

NET use x: \\%compname%\TestAutoInstall /user:%login% %pass%
xcopy %InstallerFolder%\%FileName% x:\ /s /e /d /y
NET use x: /delete

2. Здесь же запускаю второй батник с помощью PsExec.exe

%InstallerFolder%\PsExec.exe \\%compname% -f -u %login% -p %pass% /c %InstallerFolder%\InstallProcess.bat


3. Весь процесс InstallProcess.bat отрабатывает как надо, за исключением команды start:
START /WAIT C:\TestAutoInstall\%FileName% /DIR="C:\Program Files (x86)\SomeApp\" /sp- ^
/verysilent ^
/suppressmsgboxes ^
/closeapplications ^
/components="..." ^
/tasks="..." ^
/log="%~n0.log"


Она не выполняется. Ошибок не пишет, просто проскакивает ее.
Такое поведение встречал, когда из-за нехватки ключей не срабатывала тихая установка (при запуске InstallProcess.bat локально). После добавления всех нужных ключей проблема ушла. Теперь запуск InstallProcess.bat локально на удаленной машине работает отлично.

Наверняка, что-то простое упускаю. Буду рад любым советам

Заранее спасибо.

mwz
05-03-2019, 21:44
smitsaec, запись
START "" /WAIT ........
(с двумя двойными кавычками) тоже не срабатывает?

smitsaec
05-03-2019, 21:51
(с двумя двойными кавычками) тоже не срабатывает? »

Да, к сожалению, уже пробовал такой вариант. Результат аналогичен

Забыл уточнить, моя машина - Win 7, 64. Удаленная - Win 10, 64.
InstallProcess.bat завершается с кодом ошибки 0

Serguei Kouzmine
06-03-2019, 06:55
@mwz попробуйте записать команду инсталятора в комадный файл и уже его выполять

start /wait <cmd файл с inno командой > - похоже MZ не любит поддерживать вложенные команды.

если получится ватоматизируйте это..

или даже
start /min /wait cmd /c <cmd файл с inno командой >

smitsaec
06-03-2019, 09:59
или даже
start /min /wait cmd /c <cmd файл с inno командой > »
Если я правильно понял совет эту часть записал в Install.cmd, закинул на удаленный компьютер

C:\TestAutoInstall\%FileName% /DIR="C:\Program Files (x86)\SomeApp\" /sp- ^
/verysilent ^
/suppressmsgboxes ^
/closeapplications ^
/components="..." ^
/tasks="..." ^
/log="%~n0.log"

В InstallProcess.bat изменил на:
start /min /wait cmd /c C:\TestAutoInstall\Install.cmd
Результат тот же.
Попробовал в Install.cmd сделать элементарный вывод "echo trulala" и он также не отработал

Вообще, скорее всего, я слишком усложняю и есть методы для решения моей задачи попроще. С радостью послушаю почитаю

mwz
06-03-2019, 14:53
@mwz попробуйте »
Это ко мне предложение?? Я тут ни сном ни духом...

smitsaec
06-03-2019, 21:57
Проблема решена. Не хватало ключа -s.
%InstallerFolder%\PsExec.exe -s \\%%c -f -u %%a -p %%b -c %InstallerFolder%\InstallProcess.bat




© OSzone.net 2001-2012