如何将变量作为参数传递给powershell中带引号的命令

时间:2010-04-22 01:42:16

标签: powershell variables arguments quotes

我的powershell脚本采用以下参数:

参数($ BackedUpFilePath)

传递到我的脚本的值是:

“\ 123.123.123.123 \备份\ Website.7z”

我有另一个变量,它是我想要提取文件的位置:

$ WebsiteDeploymentFolder =“C:\ example”

我正尝试使用以下命令提取存档:

`7z x $ BackedUpFilePath -o $ WebsiteDeploymentFolder -aoa

我一直收到以下错误:

错误: 找不到存档

以下有效,但我需要$ BackedUpFilePath为动态:

`7z x'\ 123.123.123.123 \ Backups \ Website.7z'-o $ WebsiteDeploymentFolder -aoa

我认为我需要将带有引号的$ BackedUpFilePath传递给7z,但无论我尝试什么,它们似乎都被剥离了。我在引用地狱。

感谢。

编辑:事实证明问题是我传入“'\ 123.123.123.123 \ Backups \ Website.7z'”。 (额外的单引号)

1 个答案:

答案 0 :(得分:2)

在PowerShell中使用外部命令行应用程序的最简单方法(在我看来)是使用别名。例如,以下对我来说很好。

Set-Alias Szip C:\Utilities\7zip\7za.exe

$Archive = 'C:\Temp\New Folder\archive.7z'
$Filename = 'C:\Temp\New Folder\file.txt'

SZip a $Archive $Filename

PowerShell负责正确划分参数。