当我不知道文件的确切名称时,有没有办法使用PowerShell 2.0压缩文件?我知道前几个字母,所以我可以使用通配符。
最后,必须能够从批处理文件中调用该脚本。
答案 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" }