【问题标题】:How to pass a variable as an argument to a command with quotes in powershell如何在powershell中将变量作为参数传递给带有引号的命令
【发布时间】:2011-02-10 21:02:39
【问题描述】:

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

参数($BackedUpFilePath)

传入我的脚本的值是:

“\123.123.123.123\Backups\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'”。 (额外的单引号)

【问题讨论】:

    标签: powershell variables arguments quotes


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-06-15
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2023-02-21
      相关资源
      最近更新 更多