Я хочу, чтобы создал пакетный файл и запустил его после завершения установки. Я нашел учебник здесь: https://www.codeproject.com/questions/477984/createplusandpluswriteplusbatchplusfileplusinplusiInno Setup: как создать командный файл и запустить его после завершения установки
Так что я начал набирать эту кучу кода здесь в моей секции [Code]:
function CreateInstallDatabaseBatch(): boolean;
var
fileName: string;
line: string;
begin
Result:= True;
fileName:= ExpandConstant('{sd}\{#MyAppName}\Temp\installdatabase.bat');
line:= 'sqlcmd -S ' + srvName + ' -i {sd}\{#MyAppName}\Temp\installdatabase.sql';
Result:= SaveStringToFile(fileName, line, true);
exit;
end;
procedure installdb(CurStep: TSetupStep);
begin
if CurStep=ssDone then
begin
CreateInstallDatabaseBatch();
end;
end;
Он компилируется без каких-либо ошибок и установить мой пакет без каких-либо ошибок, но не создает пакетный файл с одной строкой. Должен ли я что-то добавить? Я просто добавил части кода, которые показаны в учебнике, и немного отредактировал их (т. Е. Мне нужна только одна строка, а не строки).
Если вам нужна дополнительная информация, сообщите мне. Ответьте как можно скорее.
Я пытался сделать это, как вы сказали, в шаге 4, потому что мне просто нужно выполнить одну команду. Чтобы проверить правильность строки «Params», я использовал MsgBox. Следующая проблема: переменная srvName объявляется и привязывается к значению в другой процедуре (InitializeWizard). Его имя сервера, которое пользователь должен ввести в поле ввода. Как я это сделал: 'srvName: = ServerDataPage.Values [1]' – aliimagnito
* Но имя не отображается. Какие-либо предложения? – aliimagnito
Вы не можете выполнить 'srvName: = ServerDataPage.Values [1]' в 'InitializeWizard'. В этот момент коробка еще не имеет значения! Используйте 'ServerDataPage.Values [1]' непосредственно в 'CurStepChanged', вместо переменной' srvName'. Как '' -S '+ ServerDataPage.Values [1] +' '+ '. –