我需要根据编写的月份和年份来压缩文件。
# group files based on extension month/year
$groups = Get-ChildItem C:\Users\mypath -filter "*psv.*" | Group-Object {"{0:MMMM} {0:yyyy}" -f $_.LastWriteTime }
# compress groups
ForEach ($group in $groups) {
& "C:\Program Files\7-Zip\7z.exe" u ($group.FullName + ".7z") $group.FullName
}
上面的脚本不起作用,但是,当我单独运行以下行时
Get-ChildItem C:\Users\mypath -filter "*psv.*" | Group-Object {"{0:MMMM} {0:yyyy}" -f $_.LastWriteTime }
我得到以下结果,这很好。
但是,它并没有压缩文件组。
答案 0 :(得分:2)
试试这个:
$groups = Get-ChildItem C:\Users\mypath *psv.* | Group {"{0:MMMM}-{0:yyyy}" -f $_.LastWriteTime}
foreach ($group in $groups) {
foreach ($file in $group.Group.FullName) {
Write-Host "Processing " + $group.Name + " " + $file
& "C:\Program Files\7-Zip\7z.exe" u ($group.Name + ".7z") $file
}
}
GroupInfo输出的GroupInfo对象的Group属性包含该分组中的所有文件。你必须枚举这些文件。