按名称前缀对文件进行分组,然后使用PowerShell对每个组进行归档(zip)

时间:2016-07-20 16:23:31

标签: powershell

我有以下情况:

我在名为的目录中有大量文件:

'###### _ dynamicname_timestamp.xml'

我想通过######对文件进行分组,然后将分组的文件压缩到以组的######命名的存档中。在这种情况下,文件名和时间戳并不重要,只有前六位数。 我是PowerSHell的新手,还不熟悉命令(cmdlet?)。在ss64寻找答案我遇到了group-object但是我仍然无法做到正确。到目前为止,这就像我得到的一样:

ls D:\directory\ | select name | group-object name

由于时间戳和动态文件名,每个文件都在其各自的组中。我需要一种只按前六位分组的方法,然后将这些组传递给zip或archive命令。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

此管道应该为您提供所需的结果/想法如何做到

Get-ChildItem D:\directory | 
    Group-Object -Property { $_.Name.Substring(0, 6) } |
    % { Compress-Archive -Path $_.Group -DestinationPath "$($_.Name).zip" }