使用PowerShell脚本下载zip文件并解压缩

标签 powershell zip powershell-2.0

我需要一些帮助,以将我的想法整合到一个有效的代码中。

这就是我所拥有的:

第一步:我将FTP用户名和密码作为参数。

param(#define parameters
[Parameter(Position=0,Mandatory=$true)]
    [string]$FTPUser
[Parameter(Position=1,Mandatory=$true)]
    [string]$FTPPassword    
[Parameter(Position=2,Mandatory=$true)]
    [string]$Version    
)

然后,我设置这些变量:
$FTPServer = "ftp.servername.com"
$SetType = "bin"

现在,我想建立一个连接。我用Google搜索语法,发现了这一点。不知道这是否会建立FTP连接。我还没有测试
$webclient = New-Object System.Net.WebClient 
    $webclient.Credentials = New-Object System.Net.NetworkCredential($FTPUser,$FTPPassword) 

这是我不知道如何编码的部分:
$Version是我的输入参数之一。我在FTP中有一个zip文件,如下所示:
ftp.servername.com\builds\my builds\$Version\Client\Client.zip

我想将该Client.zip下载到本地计算机的"C:\myApp\$Version"文件夹中(从中运行脚本)。
因此,FTP下载将为每次运行创建一个带有$version名称和C:\myApp的新子文件夹。

完成此操作后,我还需要知道如何在C:\myApp\$Version\Client\<content of the zip file will be here>下解压缩此client.zip文件。

最佳答案

您可以使用Expand-Archive cmdlet。它们在Powershell版本5中可用。不确定以前的版本。请参见下面的语法:
Expand-Archive $zipFile -DestinationPath $targetDir -Force-Force参数将强制覆盖目标目录中的文件(如果存在)。

使用您的参数,它将看起来像这样:
Expand-Archive "C:\myApp\$Version\Client.zip" -DestinationPath "C:\myApp\$Version" -Force

关于使用PowerShell脚本下载zip文件并解压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41895772/

相关文章:

电源外壳$?变量的行为不符合预期

powershell - 如何批量启用任务

powershell - Windows 2003 计划任务 Cmdlet (v 1.0)

powershell - Azure ARM 模板和 PowerShell 模块

powershell - 简单的PowerShell脚本循环遍历1个CSV文件以从另一个CSV文件创建新的CSV文件

powershell - 有没有办法在不使用 3rd 方工具的情况下对 powershell 中的压缩文件进行密码加密?

lua - 如何使用 Lua 从 zip 文件中提取文件?

php - 提供本地json文件: how to cache

c# - ASP.NET 将所有文件下载为 Zip

powershell - 测试连接内解析 DnsName