我要创建一个自解压存档,但我在连接解压的默认路径时遇到了问题。我想将我的文件解压到与自解压存档程序相同的路径中。不幸的是,这些文件正在解压到另一个路径(C:\Users\computer\AppData\Temp\IXP000.TMP)。可以设置路径吗?
发布于 2012-12-04 18:01:40
我找不到任何直接使用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的回答的启发。)
发布于 2021-10-18 23:38:14
您可以始终使用cmd脚本并将代码行回显到特定目录中的文件中
https://stackoverflow.com/questions/13534699
复制相似问题