2010-04-22 17 views
2
作为参数传递给命令

我的PowerShell脚本采用以下参数:如何将变量与报价在PowerShell中

参数($ BackedUpFilePath)

,这是获得传入我的剧本的价值是:

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

我还有一个变量,它是我要为Extrac位置T中的文件:

$ WebsiteDeploymentFolder = “C:\例如”

我想用下面的命令来提取档案:

`7Z X $ BackedUpFilePath -o $ WebsiteDeploymentFolder - AOA

我不断收到以下错误:

错误: 找不到档案

下面的作品,但我需要$ BackedUpFilePath是动态的:

`7Z X '\ 123.123.123.123 \备份\ Website.7z' -o $ WebsiteDeploymentFolder -aoa

我想我需要将$ BackedUpFilePath传递给7z引号,但无论我尝试什么,它们似乎都被剥离出来。我在地狱。

谢谢。

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

回答

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负责正确分隔参数。