5

我在尝试使用7za Powershell 中的命令行实用程序解压缩文件时遇到了一个小问题。

我将$zip_source变量设置为 zip 文件的路径和 $unzip_destination所需的输出文件夹。

然而,命令行使用7za需要这样指定的参数:

7za x -y <zip_file> -o<output_directory>

所以我现在的电话是这样的:

& '7za' x -y "$zip_source" -o$unzip_destination

由于与目标之间没有空格-o,PowerShell 似乎不会扩展$unzip_destination变量,而是$zip_source扩展。

目前,该程序只是将所有文件提取到C:\名为$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

在运行命令之前有什么方法可以强制扩展?

4

3 回答 3

6

试试这个:

& '7za' x -y "$zip_source" "-o$unzip_destination" 
于 2012-05-07T14:49:27.117 回答
3

试试这样:

-o $($unzip_destination)

编者注:此解决方案仅适用后面的空格-o(在这种情况下只-o $unzip_destination会这样做) - 如果您删除它,该命令将无法按预期工作。
因此,这种方法不适合按照 OP 的要求将变量值直接附加到选项名称。

于 2012-05-07T14:45:08.173 回答
0

这应该有效:

& '7za' x -y $zip_source -o${unzip_destination} 
于 2012-07-30T14:20:49.490 回答