首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iexpress -提取路径

Iexpress -提取路径
EN

Stack Overflow用户
提问于 2012-11-24 03:14:52
回答 2查看 5.5K关注 0票数 1

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

EN

回答 2

Stack Overflow用户

发布于 2012-12-04 18:01:40

我找不到任何直接使用IExpress的方法,但我们可以使用一个技巧。

但首先我要指出的是,使用7-Zip7zCon.sfx模块非常容易(如果你需要做的就是将存档解压到当前目录,没有问题),所以你可能只想尝试一下IExpress以外的东西。

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

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

代码语言:javascript
复制
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的回答的启发。)

票数 5
EN

Stack Overflow用户

发布于 2021-10-18 23:38:14

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13534699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档