IExpress停止从临时位置删除文件



我使用IExpress进行自提取器。我想阻止从临时位置删除文件。这可能吗?

如果没有,那么任何其他的自提取器也可以这样做吗?

使用IExpress似乎不可能直接,尽管您可以用一种笨拙的方式来解决它。还有其他归档者可以直接做到这一点;WinRAR跃然纸上,尽管我相信还有更多。

IExpress似乎有三种模式:

  1. 将文件提取到临时目录(看起来像%temp%IXP000.TMP),运行安装命令,运行可选的安装后命令,删除临时目录。

  2. 提取文件;必须在命令行中指定位置,否则将提示用户输入位置。(我看不出有任何方法可以在向导或.sed文件中设置提取目录。)

  3. 创建一个.cab文件。(但老实说,我只会使用makecabcabarc…)

一种解决方法是将IExpress归档绑定到IExpress存档中;内部归档(包含实际文件)是仅提取类型(2),外部归档(仅包含内部归档)是安装程序类型(1)。外部IExpress存档有一个安装命令,如:

cmd /c innerArchive.exe /q /t:"%temp%persistent"

这将在%temp%persistent中留下文件。(cmd /c需要对%temp%进行变量扩展。)

如果您确实需要运行一个命令来安装某些东西,您可以将其指定为安装后命令(如果您正在运行内部归档中的文件,则引用%temp%persistent)。同样,您可能需要cmd /c来扩展它。


另一种可能更简单的方法是一个简单的批处理文件:

@echo off
xcopy /y * "%temp%persistent"
rem Execute any other commands here...

然后您只需要一个IExpress档案,一个执行批处理文件的安装程序类型(1)。请确保像cmd /c persist.bat一样运行它,否则它将由command.com执行,这是不好的。

最新更新