Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在inno安装程序上完成安装后创建Bat文件_Batch File_Inno Setup - Fatal编程技术网

Batch file 在inno安装程序上完成安装后创建Bat文件

Batch file 在inno安装程序上完成安装后创建Bat文件,batch-file,inno-setup,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); lin

它工作得很好!问题在于,创建蝙蝠时,它不会创建创建蝙蝠的路径

这是我当前的代码:

[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
我需要的是使用当前位置创建bat,在该位置使用以下代码行创建bat

它应该是这样的,例如:

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

您应该为行[0]扩展常量值

记住正确的报价

如果您不想在每次安装应用程序时追加批处理,请不要将true用于

[守则] 函数CreateBatch:boolean; 变量 文件名:字符串; 线条:柏油纹; 开始 //目录测试 如果不是DirExistsExpandConstant“{userdesktop}\{MyAppName}”,则开始 CreateDirExpandConstant“{userdesktop}\{MyAppName}”; 终止 //直接端测试 文件名:=ExpandConstant'{userdesktop}\{MyAppName}\batch.bat'; 设置阵列长度,2; 行[0]:=ExpandConstant'{pf}\{MyAppName}\soft21\launcher.exe-g{pf}\{MyAppName}\soft\code\Turbo.rpx'; 行[1]:=“退出”; 结果:=saveStringsToFileFileFileName,行,true; 终止 过程CurStepChangedCurStep:TSetupStep; 开始 如果CurStep=ssPostInstall,则 开始 创建批处理; 终止 终止 您应该为行[0]扩展常量值

记住正确的报价

如果您不想在每次安装应用程序时追加批处理,请不要将true用于

[守则] 函数CreateBatch:boolean; 变量 文件名:字符串; 线条:柏油纹; 开始 //目录测试 如果不是DirExistsExpandConstant“{userdesktop}\{MyAppName}”,则开始 CreateDirExpandConstant“{userdesktop}\{MyAppName}”; 终止 //直接端测试 文件名:=ExpandConstant'{userdesktop}\{MyAppName}\batch.bat'; 设置阵列长度,2; 行[0]:=ExpandConstant'{pf}\{MyAppName}\soft21\launcher.exe-g{pf}\{MyAppName}\soft\code\Turbo.rpx'; 行[1]:=“退出”; 结果:=saveStringsToFileFileFileName,行,true; 终止 过程CurStepChangedCurStep:TSetupStep; 开始 如果CurStep=ssPostInstall,则 开始 创建批处理; 终止 终止
可能是因为您没有为[0]行扩展常量?谢谢您现在的工作!但我还有一个问题,请在下面的另一个答案中查看。可能是因为您没有为[0]行展开常数?谢谢您现在的工作!但是我有另一个问题,看看下面的另一个答案。它现在工作了!但是我有一个新的问题,当我选择另一个不是程序文件的路径时,bat不是创建的DAS SaveStringsToFile不创建目录。在这种情况下,您必须检查DirExists,如果不存在,则创建这样的Dir。示例添加。它现在可以工作了!但是我有一个新的问题,当我选择另一个不是程序文件的路径时,bat不是创建的DAS SaveStringsToFile不创建目录。在这种情况下,您必须检查DirExists,如果不存在,则创建这样的Dir。添加了示例。