Batch file 将具有大量行的文件拆分为固定行的较小文件的最佳方法是什么?
我有几个包含大约50k行的文件。我需要把它们分成更小的文件,每个文件有1k行。在windows平台上执行此操作的最佳方法是什么 如有任何意见,将不胜感激 谢谢,Batch file 将具有大量行的文件拆分为固定行的较小文件的最佳方法是什么?,batch-file,Batch File,我有几个包含大约50k行的文件。我需要把它们分成更小的文件,每个文件有1k行。在windows平台上执行此操作的最佳方法是什么 如有任何意见,将不胜感激 谢谢, Pavan.创建一个powershell文件,并使用.ps1扩展名保存该文件,然后添加以下powershell代码 $Input = "LARGEFILE.txt" $outName = "smallerfile" $extension = "txt" $Max = 10kb $inputFile = [io.file]::OpenRe
Pavan.创建一个powershell文件,并使用
.ps1
扩展名保存该文件,然后添加以下powershell代码
$Input = "LARGEFILE.txt"
$outName = "smallerfile"
$extension = "txt"
$Max = 10kb
$inputFile = [io.file]::OpenRead($Input)
$buffers = new-object byte[] $Max
$count = $lump = 0
try {
do {
$count = $inputFile.Read($buffers, 0, $buffers.Length)
if ($count -gt 0) {
$to = "{0}.{1}.{2}" -f ($outName, $lump, $extension)
$toFile = [io.file]::OpenWrite($to)
try {
$tofile.Write($buffers, 0, $count)
} finally {
$tofile.Close()
}
}
$lump ++
} while ($count -gt 0)
}
finally {
$inputFile.Close()
}
您需要给出输入文件的完整路径和名称,这将是一个大文件。然后给出所需输出文件的唯一名称,它将为您存储每个文件的编号。您还可以调整输出文件的大小。因此,在本例中,它将从LARGEFILE.txt
到smallerfile.1.txt
,smallerfile.2.txt
,smallerfile.3.txt
等创建10kb的文件
PS!!您可以从
cmd.exe
运行该文件,方法是以powershell.\scriptname.ps1
运行,或者用脚本的完整路径替换\
。您也可以直接从powershell运行它。使用批处理文件可以完成,但速度非常慢。使用Powershell也可以做到这一点,但当文件较大时,速度也会变慢,可能是通过安装GNU CoreUtils的一部分split
,它可以安装在Windows上,使其功能更加强大和有用。