Innosetup中将bat文件压缩到压缩包中

有时候在安装的过程中需要调用某些文件(bat或者exe等文件),但是只需要使用一次,然后就可以删掉该文件,

在Innosetup中应该这样操作:

1.在.iss脚本的[Files]章节写下:

  Source: ..fileName.exe ; DestDir: {tmp}; Flags:deleteafterinstall

  注意:

     Source 是Innosetup关键字;

     ..fileName.exe 其中fileName.exe为所要压缩的文件,..指当前工作目录;

     DestDir: {tmp} 表示该文件在安装时会解压到系统的temp目录下;

     Flags:deleteafterinstall 表示该文件在安装完成后会被删除

2. 通过ExtractTemporaryFile()方法来获取该文件,

      ExtractTemporaryFile('fileName.exe');
      fullPath := ExpandConstant('{tmp}fileName.exe');
      Exec(fullPath, '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);

   注意:
      ExtractTemporaryFile('fileName.exe') 表示从系统的temp临时目录中获取该文件的操作句柄

                     (简单来说,就是要调用一下该方法才能使用该文件)


      fullPath := ExpandConstant('{tmp}fileName.exe') 获取该文件解压后的真实路径,

                      其中{tmp}是Innosetup定义的,对应Windows系统的temp目录


      Exec(fullPath, '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) 其中Exec()方法是Innosetup中的方法,类似于在cmd中执行命令

原文地址:https://www.cnblogs.com/tommy-huang/p/5742061.html