首页 > 解决方案 > 我需要将 100-250MB 左右的 txt 分成 25MB 的部分

问题描述

我需要拆分很多文件,在其他较小的文件中。因为服务器读取大文件时,CPU占用了100%的使用率,我只能接受最高70%的费用。所以我认为如果我可以将它们分成大约 25 MB 的文件,那将是完美的。

文件示例:

2018 年 7 月 11 日 loginfo B4 45 FR.txt -- 100MB

我想要的结果:

1 2018 年 7 月 11 日 loginfo B4 45 FR.txt -- 25MB
2 2018 年 7 月 11 日 loginfo B4 45 FR.txt -- 25MB
3 2018 年 7 月 11 日 loginfo B4 45 FR.txt -- 25MB
4 2018 年 7 月 11 日 loginfo B4 45 FR.txt -- 25MB

要记住的另一件事是控制小于 25MB 的文件。

标签: powershell

解决方案


这应该有效。请注意 -ReadCount 512 位表示它将一次处理 512 行。

$FromPath = "C:\LOGS\LOG.txt"
$ToPath = "C:\LOGS"

$From = Get-Content -Path $FromPath -ReadCount 512

$SplitN = 1
$N = 0

while ($N -lt $From.Count) {
    $IT = New-Item "$ToPath\Logout $SplitN.txt"
        while ($(Get-Item -Path $IT.FullName).Length -lt 25mb -and ($N -lt $From.Count)){
            Add-Content -Path $IT.FullName -Value $From[$N]  #$From[$N]
            $N++
        }
    $SplitN++
}

推荐阅读