6

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 であるため、他のスクリプト言語を使用することはできません

4

1 に答える 1