Мне нужно разделить TXTS около 100-250 МБ на части по 25 МБ - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужно разбить много файлов, на другие с меньшим размером. Потому что, когда сервер читает большие файлы, загрузка процессора занимает 100%, а я могу принять максимальный заряд в 70%. Поэтому я думаю, что было бы идеально, если бы я мог разбить их на файлы размером около 25 МБ.

Пример файла:

07/11/2018 loginfo B4 45 FR.txt -- 100MB

Результат, который я хочу:

1 07/11/2018 loginfo B4 45 FR.txt -- 25MB
2 07/11/2018 loginfo B4 45 FR.txt -- 25MB
3 07/11/2018 loginfo B4 45 FR.txt -- 25MB
4 07/11/2018 loginfo B4 45 FR.txt -- 25MB

Еще одна вещь, которую нужно иметь в виду, - это управление файлами размером менее 25 МБ.

1 Ответ

0 голосов
/ 08 ноября 2018

Это должно работать. Обратите внимание, что -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++
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...