Powershell小技巧--将文件夹中的大文件分成若干份

时间:2021-05-22

朋友有一文件夹,全部是EML文件,约20G。他需要把这20G文件按每个文件夹2G分成10个。于是乎写了以下脚本:

#目标文件夹$scrfile = "d:\test"#起始目录名$directory = 0#1825361100#76547428#判断当目录的文件数大于0时while循环为真while( (dir -Path $scrfile -Filter *.eml ).count -gt 0){ #起始目录名为1 $directory++#建立目录 New-Item -Path "d:\$directory" -ItemType Directory -ErrorAction Stop#累加大小变量 $length = 0#dir配合where-object移动文件到新目录,记录大小,当大小达到指定大小,跳出管道. dir -Path $scrfile -Filter *.eml |Where-Object{ $objName = $_.Name $_.moveto("d:\$directory\$objName") $length += $_.length if($length -gt 1825361100) { continue } }}

注意dir在这里最好用where-object,而不要用foreach。

这样一来,朋友约4W份的EML邮件文件夹,瞬间在2秒钟分成了10个目录。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章