Powershell v2,使用通配符压缩文件?

时间:2016-03-16 17:06:51

标签: powershell compression

当我不知道文件的确切名称时,有没有办法使用PowerShell 2.0压缩文件?我知道前几个字母,所以我可以使用通配符。

最后,必须能够从批处理文件中调用该脚本。

1 个答案:

答案 0 :(得分:0)

在PowerShell 2中没有用于压缩文件的cmdlet。您可以使用Shell.Application COM对象,但我建议使用具有Write-Zip功能的PSCX (PowerShell Community Extensions) 2.1.1模块,那么你应该可以做这样的事情(未经测试):

#Get files/directories starting with "abc"
Get-ChildItem -Path c:\rootfolder -Filter "abc*" -Recurse |
#Get only files
Where-Object { !$_.PSIsContainer } |
#Compress to zip
Write-Zip -OutputPath "MyZip.zip"

或者,如果有多个匹配,并且您希望它们分开

#Get files/directories starting with "abc"
Get-ChildItem -Path c:\rootfolder -Filter "abc*" -Recurse |
#Get only files
Where-Object { !$_.PSIsContainer } |
ForEach-Object { Write-Zip -Path $_.FullName -OutputPath "$($_.Name).zip" }