PowerShell zip/unzip files

最近因需要对zip文件进行批量的压缩解压,遂想到用Powershell完成,正好可以借此熟悉一下基本用法。

通过自定义function可以很方便的完成我们想到的效果。

 

1.  解压文件

function Extract-Zip
{
	param([string]$zipfilename, [string] $destination)

	if(test-path($zipfilename))
	{	
		$shellApplication = new-object -com shell.application
		$zipPackage = $shellApplication.NameSpace($zipfilename)
		$destinationFolder = $shellApplication.NameSpace($destination)
		$destinationFolder.CopyHere($zipPackage.Items())
	}
}

 

使用方法:

# extract all files from myzip.zip file to a directory
extract-zip c:\demo\myzip.zip c:\demo\destination

# extract all files from a list of zip files to a directory
dir c:\demo\*.zip | foreach-object { extract-zip $_.fullname c:\demo\destination }

 

 

2.  压缩文件

function Add-Zip
{
	param([string]$sourcefiles, [string]$zipfilename)
    
	dir $sourcefiles | foreach-object {
	 if(!$zipfilename) {
		$zipfile = $_.FullName + ".zip";
	 }
	else {
		$zipfiles = $zipfilename;
	}
        
	if(!(test-path($zipfile))) {
		set-content $zipfile ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18));
		(dir $zipfile).IsReadOnly = $false;
    	}
        
	$shellApplication = new-object -com shell.application;
	$zipPackage = $shellApplication.NameSpace($zipfile);
	$zipPackage.CopyHere(($_.FullName));
	}
}

 

使用方法:

# add files to myzip.zip file
add-zip c:\demo\*.csv c:\demo\myzip.zip

# add files to zip files one by one (abc01.csv -> abc01.csv.zip)
add-zip c:\demo\*.csv

 

以上function 以及使用方法在windows xp, powershell v2.0 环境上测试通过。

get-host

 

参考资料:

Compress Files with Windows PowerShell then package a Windows Vista Sidebar Gadget

 

转载于:https://www.cnblogs.com/james-zhang/archive/2011/04/07/2008139.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值