Powershellで7za
コマンドラインユーティリティを使用してファイルを解凍しようとすると、小さな問題があります。他のプログラムを呼び出すときのPowershell変数の展開
$zip_source
変数をzipファイルのパスに設定し、 $unzip_destination
を目的の出力フォルダに設定しました。原因空白があってはいけませんという事実に
& '7za' x -y "$zip_source" -o$unzip_destination
:
7za x -y <zip_file> -o<output_directory>
だから私の現在の呼び出しは次のようになります。7za
のコマンドラインの使用法は次のように指定した引数を必要とするしかし
-o
とその宛先 の間では、$unzip_destination
変数をPowerShellが展開しないと思われますが、$zip_source
は展開されています。
現在のところ、プログラムは、のルートに の$unzip_destination
という名前のすべてのファイルを単純に抽出します。変数の前後に引用符の種類を設定 はどちらも動作しません。
-o"$unzip_destination" : still extracts to C:\$unzip_destination
-o'$unzip_destination' : still extracts to C:\$unzip_destination
-o $unzip_destination : Error: Incorrect command line
は、コマンドを実行する前に、拡張を強制する方法はありますか?
私が去るときに-oとunzip_destination –
の間にスペースは入れません-oの後のスペースを外に出す - ありがとう。 '$()'はPowerShellで何らかのサブシェルを起動しますか(私はUnixのバックグラウンドからWindowsスクリプティングに慣れていません)。 – BergmannF
$()は部分式と呼ばれ、親の中のすべてが1つの値として返されます。$( "Hello、" + "world!")は文字通り:Hello、world! これらは、ある式の出力を別の文字列の途中で文字列に変換したい場合に便利です。 – SpellingD