0

これは私が試した改訂の1つです。私は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を使用してこのスクリプトにアクセスしていますが、スクリプトを削除したいと思います。一時ディレクトリに抽出することをお勧めします。

** * ** * ** * * UPDATE * ** * ** * ** * *** これは、私が使用した、機能した終了コードです。

    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 に答える