使用Powershell为按日期创建的文件创建7z存档

时间:2011-06-24 21:31:28

标签: powershell powershell-v2.0

我有一个目录,其中复制了各种日常文件。我需要编写一个power shell脚本,它将根据文件创建日期组创建7z存档。存档的名称包括那些组日期。

以下示例

FileA  06/23/11
FileB  06/23/11
FileC  06/24/11

脚本应该创建2个档案

062311.7z contains FileA, FileB
062411.7z contains FileC

提前致谢

---------现在我必须开发一个可以处理每日/每周/每月持续时间的压缩程序

1 个答案:

答案 0 :(得分:5)

您需要做的第一件事是使用group-object将所有文件分组到日期:

$groups = dir | group-object -property {$_.LastWriteTime.Date}

然后为每个组构建一​​个命令字符串,用于执行压缩并执行它:

$groups | foreach{$cmd = "7z.exe a $((Get-Date $_.Name).ToString(`"MMddyy`")).7z $([string]::join(`" `", $_.Group))"; invoke-expression $cmd}

警告,以上内容未经过实际测试(例如,如果您在文件名中填空,则无效)。但希望它会让你足够继续。