我有以下情况:
我在名为的目录中有大量文件:
'###### _ dynamicname_timestamp.xml'
我想通过######对文件进行分组,然后将分组的文件压缩到以组的######命名的存档中。在这种情况下,文件名和时间戳并不重要,只有前六位数。 我是PowerSHell的新手,还不熟悉命令(cmdlet?)。在ss64寻找答案我遇到了group-object但是我仍然无法做到正确。到目前为止,这就像我得到的一样:
ls D:\directory\ | select name | group-object name
由于时间戳和动态文件名,每个文件都在其各自的组中。我需要一种只按前六位分组的方法,然后将这些组传递给zip或archive命令。提前感谢您的帮助。
答案 0 :(得分:3)
此管道应该为您提供所需的结果/想法如何做到
Get-ChildItem D:\directory |
Group-Object -Property { $_.Name.Substring(0, 6) } |
% { Compress-Archive -Path $_.Group -DestinationPath "$($_.Name).zip" }