CSVファイルをヘッダつきで分割したい
CSVファイルを分割したい…
ドンピシャ!
開発環境を整える
カスタマイズ
「いろんなファイルに使いたいので、ファイル名や行数の設定など、”変更箇所”は上部に固めたい」
「ファイルに振る連番は、1始まりの2桁左0埋めがいい」
※前提
対象は同階層のファイル
入出力のどちらもUTF-8
#ファイルパス
$fileName = "202205312349_sample"
#分割行数
$div = 3000
$Path = "./" + $fileName + ".csv"
#echo "対象ファイル " + $Path
#csv読み込み $csv = Import-Csv $Path -Encoding UTF8
#csvの行数カウント $count_rows = Get-Content $Path | Measure-Object
#echo "対象行数 " + $count_rows
#出力されるファイル数分ループ
for($i=0;$i -lt $count_rows.Count/$div;$i++){
#開始位置
$a = $i*$div
#終了位置
$b = $i*$div+$div-1
# echo $i + "番目 " + $a + "~" + $b + "を分割"
$dispCnt = "{0:D2}" -f ($i + 1)
$newFileName = "./" + $fileName + "_" + $dispCnt + ".csv"
#指定の行数範囲をファイルへ出力 $csv[$a..$b] | Export-Csv -NoTypeInformation $newFileName -Encoding UTF8
}
"続行するには何かキーを押してください..."
$host.UI.RawUI.ReadKey()
メモ
pause させたい
ずばりはない模様。
あと、この方法はあくまで偽装なので、「最後」にしか使えない。
ダブルクォートを外すとき
今回は検証がめんどうだったので、実施しなかった。
nullとかの条件が厳しいサイトなら重宝するかも
ノウハウがまとまってそう
なんかすごそう
この記事が気に入ったらサポートをしてみませんか?