在inno setup上完成安装后创建Bat文件

时间:2018-12-07 19:03:17

标签: batch-file inno-setup

效果很好!问题在于创建蝙蝠时不会创建它的创建路径。

这是我当前的代码:

[Code]
function CreateBatch(): boolean;
var
  fileName : string;
  lines : TArrayOfString;
begin
  Result := true;
  fileName := ExpandConstant('{pf}\{#MyAppName}\batch.bat');
  SetArrayLength(lines, 2);
  lines[0] := '{pf}\{#MyAppName}\soft21\launcher.exe" -g "{pf}\{#MyAppName}\soft\code\Turbo.rpx';
  lines[2] := 'exit';
  Result := SaveStringsToFile(filename,lines,true);
  exit;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if  CurStep=ssPostInstall then
    begin
         CreateBatch();
    end

我需要的是使用以下代码行在当前位置创建蝙蝠。

它应该看起来像这样,例如:

“ C:\ Program Files \ soft21 \ launcher.exe” -g“ C:\ Program Files \ soft12 \ code \ Turbo.rpx”

1 个答案:

答案 0 :(得分:3)

您应该为ExpandConstant设置lines[0]的值。

请记住正确的报价。

如果您不想在每次安装应用程序时都添加批处理,请不要将SaveStringsToFiletrue使用。

[Code]
function CreateBatch(): boolean;
var
  fileName : string;
  lines : TArrayOfString;
begin
    //test for directory
    if not DirExists(ExpandConstant('{userdesktop}\{#MyAppName}')) then begin
        CreateDir(ExpandConstant('{userdesktop}\{#MyAppName}'));
    end;
    //test for dir end
  fileName := ExpandConstant('{userdesktop}\{#MyAppName}\batch.bat');
  SetArrayLength(lines, 2);
  lines[0] := ExpandConstant('"{pf}\{#MyAppName}\soft21\launcher.exe" -g "{pf}\{#MyAppName}\soft\code\Turbo.rpx"');
  lines[1] := 'exit';
  Result := SaveStringsToFile(filename,lines,true);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if  CurStep=ssPostInstall then
    begin
         CreateBatch();
    end
end;