【问题标题】:How to copy zip folder in powershell如何在powershell中复制zip文件夹
【发布时间】:2020-05-14 21:55:03
【问题描述】:

如何使用用户输入值而不是硬编码来复制 zip 文件夹,并且在将 zip 放入 Visual Studio 的 distination 文件夹后需要清理和构建 .csproj

$source = "C:\Users\name\Downloads"

$archive = "C:\Users\name\Downloads"

$Name = "xyz.zip"

$destination = "D:\repo"

$ArchiveFile = Join-Path -Path $archive -ChildPath $Name

Copy-Item -Path $ArchiveFile -Destination $destination -Force

【问题讨论】:

    标签: powershell powershell-4.0


    【解决方案1】:

    参数化你的变量!

    1. 将您的代码包含在function 定义中,
    function Copy-BuildArchive
    {
      param()
    
      $archive = "C:\Users\name\Downloads"
    
      $Name = "xyz.zip"
    
      $destination = "D:\repo"
    
      $ArchiveFile = Join-Path -Path $archive -ChildPath $Name
    
      Copy-Item -Path $ArchiveFile -Destination $destination -Force
    }
    
    1. 获取您希望用用户输入替换的变量,并将它们移动到 param 块中:
    function Copy-BuildArchive
    {
      param(
        [string]$Name,
        [string]$Archive,
        [string]$Destination
      )
    
      $ArchiveFile = Join-Path -Path $Archive -ChildPath $Name
    
      Copy-Item -Path $ArchiveFile -Destination $Destination -Force
    }
    
    1. 添加一些基本的输入验证,也许还有一些默认值:
    function Copy-BuildArchive
    {
      param(
        [Parameter(Mandatory = $true)]
        [string]$Name,
    
        [string]$Archive = $(Join-Path $HOME "Downloads"),
    
        [string]$Destination = $(Join-Path $HOME "Documents")
      )
    
      $ArchiveFile = Join-Path -Path $Archive -ChildPath $Name
    
      Copy-Item -Path $ArchiveFile -Destination $Destination -Force
    }
    

    恭喜 - 您刚刚将脚本变成了参数化函数!

    现在,在执行function 定义之后,你可以这样做:

    Copy-BuildArchive -Name project.zip -Archive C:\build\path -Destination C:\output\path
    

    Copy-BuildArchive -Name somethingElse.zip    # using default values for Archive and Destination
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多