Если вы разбиваете очень большие файлы, решение, которое я нашел, является адаптацией от this, с PowerShell «встроенным» в пакетном файле. Это работает быстро, в отличие от многих других вещей, которые я пробовал (я не знал бы о других вариантах, размещенных здесь).
Способ использования mysplit.bat
ниже
mysplit.bat <mysize> 'myfile'
Примечание: Сценарий предназначен для использования в первый аргумент как размер разделения. В настоящее время он жестко закодирован со скоростью 100 Мб. Нетрудно это исправить.
Примечание 2: Имя файла должно быть заключено в одинарные кавычки. Другие альтернативы цитирования, по-видимому, не работают.
Примечание 3: Он разбивает файл на заданное количество байтов, а не на заданное количество строк. Для меня это было достаточно хорошо. Некоторые строки кода могут быть добавлены, чтобы завершить чтение каждого фрагмента, вплоть до следующего CR/LF. Это будет разделено на полные строки (не с их постоянным числом), без потерь во время обработки.
Script mysplit.bat
:
@REM Using https://stackoverflow.com/questions/19335004/how-to-run-a-powershell-script-from-a-batch-file
@REM and https://stackoverflow.com/questions/1001776/how-can-i-split-a-text-file-using-powershell
@PowerShell^
$upperBound = 100MB;^
$rootName = %2;^
$from = $rootName;^
$fromFile = [io.file]::OpenRead($from);^
$buff = new-object byte[] $upperBound;^
$count = $idx = 0;^
try {^
do {^
'Reading ' + $upperBound;^
$count = $fromFile.Read($buff, 0, $buff.Length);^
if ($count -gt 0) {^
$to = '{0}.{1}' -f ($rootName, $idx);^
$toFile = [io.file]::OpenWrite($to);^
try {^
'Writing ' + $count + ' to ' + $to;^
$tofile.Write($buff, 0, $count);^
} finally {^
$tofile.Close();^
}^
}^
$idx ++;^
} while ($count -gt 0);^
}^
finally {^
$fromFile.Close();^
}^
%End PowerShell%
Если вы используете Windows, то это не DOS. Вы говорите о командной строке Windows (cmd.exe). – dbenham
Используйте расщепление с [GnuWin CoreUtils] (http://gnuwin32.sourceforge.net/packages/coreutils.htm)? – seumas
Мысль об этом, но снова его боль, чтобы получить программное обеспечение на моем месте работы. Эта проблема была решена благодаря всем, что способствовало. – SeekingAlpha