我的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'”。 (额外的单引号)
答案 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负责正确划分参数。