我有一个csv文件,需要将它分成n个文件,每个分割文件的大小不能超过100MB。我需要在Windows批处理脚本中实现这个功能。我尝试了下面的方法,但是由于我的未分割文件是几GB,所以花费的时间很长。
@echo off
setlocal enableextensions enabledelayedexpansion
set count=1
set maxbytesize=100000000
set size=1
type NUL > output_1.csv
FOR /F "tokens=*" %%i in (myfile.csv) do (
FOR /F "usebackq" %%A in ('!filename!_!count!.csv') do (
set size=%%~zA)
if !size! LSS !maxbytesize! (
echo %%i>>!filename!_!count!.csv) else (
set /a count+=1
echo %%i>>!filename!_!count!.csv
))
请让我知道是否有更好的方法来实现这个。由于我的服务器是Windows,所以我不能使用其他脚本语言。
for
命令(您可以通过运行空的FOR /F "tokens=*" %%i in (myfile.csv) do ()
循环来检查它),因此您无需处理它。我建议使用更高级别的编程语言。 - Fr0sT