Iexpress - 提取路径

Posted

技术标签:

【中文标题】Iexpress - 提取路径【英文标题】:Iexpress - extraction path 【发布时间】:2012-11-23 19:14:52 【问题描述】:

我将创建一个自解压存档,但在连接默认解压路径时遇到问题。我想将我的文件提取到与自解压存档程序相同的路径中。不幸的是,这些文件正在另一个路径中提取(C:\Users\computer\AppData\Temp\IXP000.TMP)。可以设置路径吗?

【问题讨论】:

【参考方案1】:

我找不到任何 直接 方法来使用 IExpress 执行此操作,但我们可以应用一个技巧。

但首先我要指出的是,使用 7-Zip 的 7zCon.sfx 模块之类的东西真的很容易(如果您需要做的只是将存档解压缩到当前目录,无需提问)。因此,您可能只想尝试 IExpress 以外的其他方法。

无论如何,IExpress 的问题在于,在我们的 安装程序 运行时,我们不再位于原始存档的目录中;当前目录现在类似于%temp%\IXP000.TMP。所以我们需要找到父进程的目录——有点痛苦。一旦知道了,我们就可以xcopy 将存档的内容转移到目标文件夹。

在 VBScript 中,它看起来像这样:

Option Explicit

Dim objShell, objWMI
Dim objCmd, intMyPid, intMyParentPid, objMyParent

Set objShell = CreateObject("WScript.Shell")
Set objWMI = GetObject("winmgmts:root\cimv2")

Set objCmd = objShell.Exec("cmd.exe")
intMyPid = objWMI.Get("Win32_Process.Handle='" & objCmd.ProcessID & "'").ParentProcessId
objCmd.Terminate

intMyParentPid = objWMI.Get("Win32_Process.Handle='" & intMyPid & "'").ParentProcessId
Set objMyParent = objWMI.Get("Win32_Process.Handle='" & intMyParentPid & "'")

objShell.Run "xcopy /y * " & """" & Left(objMyParent.ExecutablePath, _
    InStrRev(objMyParent.ExecutablePath, ".exe", -1, vbTextCompare) -1) &_
    "\""", 0, True

您的安装程序将是,例如:wscript extractToOriginalLocation.vbs //B

(受到this question 的回答的启发。)

【讨论】:

【参考方案2】:

您始终可以使用 cmd 脚本并将代码行回显到特定目录中的文件中

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于Iexpress - 提取路径的主要内容,如果未能解决你的问题,请参考以下文章

IExpress 2 和 bat 文件路径

如何从 iexpress 创建的 exe 中反编译 [vb] 脚本

iexpress 对我的程序的帮助

iExpress 错误:“无法结束资源更新”

如何用AdvancedInstaller生成64Bit安装包

Windows IExpress 是不是仍然暴露漏洞?