ダブルクォートで囲んだファイルを実行するには&をつける必要あります
& "C:\Program Files\7-Zip\7z.exe" x amazonlinux2023.tar.xz
なぜ頭に &(呼び出し演算子)が必要なのか
パスの途中に Program Files という「半角スペース」 が入っていますよね。PowerShellはスペースがあると「ここでコマンドが区切られた」と判断するため、パス全体を " " で囲む必要があります。しかし、" " で囲むと今度は「ただの文字列」になってしまう……。このジレンマを解決するのが頭につけた &(呼び出し演算子 / Call Operator) となります。
# 私の7zipは"Program Files"配下に入っているので、ダブルクォーテーションで
# 囲む必要あります。
#
tmp $ "C:\Program Files\7-Zip\7z.exe" x amazonlinux2023.tar.xz
ParserError:
Line |
1 | "C:\Program Files\7-Zip\7z.exe" x amazonlinux2023.tar.xz
| ~
| Unexpected token 'x' in expression or statement.
# しかしこの通り正常に動作しません
# そこで活躍するのが頭に & を付けます。bashのバックグランド実行と
# 同じで覚えやすいですよね
#
tmp $ & "C:\Program Files\7-Zip\7z.exe" x amazonlinux2023.tar.xz
7-Zip 26.02 (x64) : Copyright (c) 1999-2026 Igor Pavlov : 2026-06-25
Scanning the drive for archives:
1 file, 35901276 bytes (35 MiB)
Extracting archive: amazonlinux2023.tar.xz
--
Path = amazonlinux2023.tar.xz
Type = xz
Physical Size = 35901276
Method = LZMA2:23 CRC64
Streams = 1
Blocks = 1
Everything is Ok
Size: 155627520
Compressed: 35901276
tmp $
