csv ファイルがあり、各分割ファイルが 100 MB を超えないように n 個のファイルに分割する必要があります。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 であるため、他のスクリプト言語を使用することはできません