powershell中压缩与解压缩zip文件的问题

powershell压缩与解压缩zip文件

powershell一些小使用技巧能在开发过程中带来便捷。

powerShell v5 以前

这里先介绍powershell v5之前的做法:

1.解压缩zip

function UnzipFile([string]$souceFile, [string]$targetFolder)
{
    if(!(Test-Path $targetFolder))
    {
        mkdir $targetFolder
    }
    $shellApp = New-Object -ComObject Shell.Application
    $files = $shellApp.NameSpace($souceFile).Items()
    #下面这句会删除已解压的,但不会影响目录内其它不相干的文件      
    $files|%{if (Test-Path ("$targetFolder/{0}" -f  $_.name )){Remove-Item ("$targetFolder/{0}" -f  $_.name) -Force -Recurse}}
    $shellApp.NameSpace($targetFolder).CopyHere($files)
}

usage:UnzipFile "C:\Users\Administrator\Desktop\test.zip" "C:\Users\Administrator\Desktop\"

2.压缩zip

powershell在v5之前没有直接进行压缩的方法,不过可以通过调用其他压缩工具或者依赖第三方库的方式来压缩,不过看起来就没那么优雅~

powerShell v5 中的改进

不得不说powershell让压缩和解压缩变得更简单了。
Compress-Archive 和 Expand-Archive cmdlets 是 PowerShell v5 中的一大改进,大家看名字应该就不难猜出其功能,使用起来也非常简单。

#将文件或文件夹test压缩为test.zip
Compress-Archive -Path D:\test -DestinationPath E:\test.zip
#将文件test.zip解压到test目录下
Expand-Archive -Path E:\test.zip -DestinationPath F:\test

是吧,一句代码搞定~

小结

v5版本之前的解压缩做法较v5版本的更加灵活,可以继续扩展脚本,同时能避免解压文件已经存在的冲突。
所以本人还是倾向于老版解压做法配合新版压缩方法。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值