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

The*_*eer 5 powershell

我有以下情况:

我的目录中有大量文件,名称如下:

'######_dynamicname_timestamp.xml'

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

ls D:\directory\ | select name | group-object name
Run Code Online (Sandbox Code Playgroud)

由于时间戳和动态文件名,每个文件都位于其自己的单独组中。我需要一种仅按前六位数字进行分组的方法,然后将这些组传递给 zip 或 archive 命令。预先感谢您的帮助。

DAX*_*lic 8

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

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