見出し画像

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とかの条件が厳しいサイトなら重宝するかも


ノウハウがまとまってそう

なんかすごそう


この記事が気に入ったらサポートをしてみませんか?