4

PowerShell から zip ユーティリティを呼び出していますが、そのパラメーターを正しく取得するのに苦労しています。コードは次のとおりです。

    if (-not (test-path "C:\Program Files (x86)\7-Zip\7z.exe")) {throw "C:\Program Files (x86)\7-Zip\7z.exe needed"} 
    set-alias sz "C:\Program Files (x86)\7-Zip\7z.exe" 

    $argument_1 = "c:\temp\DeployTemp\"
    $argument_0 = "c:\temp\Release\Web_Feature_2012R10_1_1112.prod.com.zip"

    sz x $argument_0 -o$argument_1

問題は、7zip 実行可能呼び出しが、文字列に格納されている実際の値ではなく、文字通り $argument_1 という名前のディレクトリに抽出されることです。いくつかの方法で値をエスケープしようとしましたが、うまくいきませんでした。残念ながら、7zip の「-o」フラグと出力ディレクトリの間にスペースを入れることはできません...

4

1 に答える 1

5

次のようなことを試してください:

& "$sz" x $argument_0 "-o$argument_1"

アンパサンドは、PowerShell に CMD.exe のように式を処理するように指示しますが、変数の展開 ($ で始まるトークン) は引き続き許可します。

于 2012-09-10T19:27:28.053 に答える