0

这是我尝试过的修订之一。我不太明白 7zipsharp 的事情。

    Dim Arg1 As String = "x"
    Dim Zip As String = "apps\dat\sb.7z"
    Dim path As String = "-o%TEMP%\Updates\sb"
    Process.Start(
"apps\dat\7z.exe",
Arg1 + path + Zip)

我还希望它等到提取完成后再执行代码。

这是当前使用的脚本。

@setlocal enableextensions
@pushd "%~dp0"   ::This is so the script doesn't default to %windir%
@start "" /wait 7z.exe X -o%temp%\dat\sb -y sb.7z
::@pause
@start "" /wait /D"%temp%\dat\sb" "setup.exe" %~dp0
@rd /s/q %temp%\dat

目前我正在使用 button_click 来访问这个脚本,但我想摆脱这个脚本。最好将其提取到临时目录。

** * ** * ** **更新* ** * ** * ** * *** 是我使用的有效的结束代码

    Dim temp As String = System.Environment.GetEnvironmentVariable("TEMP")
    Dim Arg1 As String = "x -o"
    Dim Zip As String = "apps\dat\sb.7z -y"
    Dim path As String = temp + "\Updates\sb"
    Process.Start("apps\dat\7z.exe", Arg1 + path + " " + Zip)

我将 -o 移至 Arg1 并删除了空间,以便将 -o%temp%\Updates\SB 读取到系统。

4

1 回答 1

1

重写你的代码:

Dim Arg1 As String = "x"
Dim Zip As String = "apps\dat\sb.7z"
Dim path As String = "-o%TEMP%\Updates\sb"
Process.Start("apps\dat\7z.exe",Arg1 + " " + path + " " + Zip)
p.WaitForExit();
  • 您忘记在参数之间包含空格
  • 您可以调用 WaitForExit() 函数来等待进程完成
  • 解压后可以像7zip一样启动setup.exe
于 2012-11-15T10:39:11.717 回答