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

tur*_*ash 2 powershell powershell-2.0

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

以下示例

FileA  06/23/11
FileB  06/23/11
FileC  06/24/11
Run Code Online (Sandbox Code Playgroud)

脚本应该创建2个档案

062311.7z contains FileA, FileB
062411.7z contains FileC
Run Code Online (Sandbox Code Playgroud)

提前致谢

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

zda*_*dan 5

您需要做的第一件事是使用group-object通过日期对所有文件进行分组:

$groups = dir | group-object -property {$_.LastWriteTime.Date}
Run Code Online (Sandbox Code Playgroud)

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

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

警告,上面没有真正测试过(例如,如果你的文件名中有空格,它将不起作用).但希望它会给你足够的进展.