Ｆｏｒ文のｔｏｋｅｎｓの最大値は３１、とそれを超える使い方

「最初に言っておく！これは、かーなーり、酷い！」

可読性ゼロの技術的観点のみのネタですので
自分しか使わない、２度と変更することは無い、
どーしてもこの方法じゃないと出来ない場合にのみ使って下さい。

Ｆｏｒ文を使ってｄｅｌｉｍｓに「，」を指定すると
ＣＳＶファイルの指定の列の内容が取り出せます。
変数を％％Ａで指定すれば、
エクセルのように％％Ａ＝Ａ列の感覚で使えます。

問題になるのは、％％Ａ変数の場合に
２７列目の変数の指定が「［」になるので
別の文字を割り当てる方法が無いかなと
Ｆｏｒ文の仕様を見ていたら
変数名は単一の文字を指定と書いてあったので
試したら、半角数字・漢字・半角カナが使えました。
なので%%ｱで指定すれば、２６列超えが出来ます。

だがしかし

ｔｏｋｅｎｓの最大値は３１という制限があるので
半角カナ変数を使っても、３１列が限界になってしまいます。

そこで

ｔｏｋｅｎｓの継ぎ足し機能を使って
なんとか８１列まで指定出来ました。

これ以上取り出したい場合は
ＧＡＷＫを使ったり、ＵＮＩＸのＣＵＴに該当する
「CSV-Preprocessor Home Page」にある
「CSVファイル項目抽出プログラム」で
必要な列だけ取り出してきてから
編集する方が現実的だと思います。

![比較.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/98441/418420dc-57a6-4101-bc8c-805fab5646a3.jpeg)


```
rem /; 継ぎ目無し
for /F "tokens=1-10  delims=," %%0  in ("1,2,3,4,5,6,7,8,9,10")                                                                do echo;%%0-%%9
rem /; 0x8740 - 0x8753                   ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳
for /F "tokens=1-20  delims=," %%①  in ("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20")                                  do echo;%%①-%%⑳
for /F "tokens=1-26  delims=," %%A  in ("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26")                do echo;%%A-%%Z
for /F "tokens=1-31  delims=," %%ｱ  in ("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31") do echo;%%ｱ-%%ﾏ

rem /;
rem /; 継ぎ目有り 1-46
rem /; ※ 半角の小書きでない「ｱ」0xB1から使う（小書きは「ｧ」0xA7）
rem /;                                                                                     継
rem /; ｱ,ｲ,ｳ,ｴ,ｵ,ｶ,ｷ,ｸ,ｹ, ｺ, ｻ, ｼ, ｽ, ｾ, ｿ, ﾀ, ﾁ, ﾂ, ﾃ, ﾄ, ﾅ, ﾆ, ﾇ, ﾈ, ﾉ, ﾊ, ﾋ, ﾌ, ﾍ, ﾎ, ﾏ, ﾐ, ﾑ, ﾒ, ﾓ, ﾔ, ﾕ, ﾖ, ﾗ, ﾘ, ﾙ, ﾚ, ﾛ, ﾜ, ﾝ, ﾞ, ﾟ
rem /; 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31    32,33,34,35,36,37,38,39,40,41,42,43,44,45,46
rem /;
for /F "tokens=1-31* delims=," %%ｱ  in ("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46") do for /F "tokens=1-15 delims=," %%ﾑ in ("%%ﾐ") do echo;%%ｱ-%%ﾏ,%%ﾑ-%%ﾟ

rem /;
rem /; 継ぎ目有り 1-62
rem /; ※ 7が小書きの「ｧ」0xA7、17が小書きでない「ｱ」0xB1
rem /;                                                                                     継
rem /; ｡,｢,｣,､,･,ｦ,ｧ,ｨ,ｩ, ｪ, ｫ, ｬ, ｭ, ｮ, ｯ, -, ｱ, ｲ, ｳ, ｴ, ｵ, ｶ, ｷ, ｸ, ｹ, ｺ, ｻ, ｼ, ｽ, ｾ, ｿ, ﾀ, ﾁ, ﾂ, ﾃ, ﾄ, ﾅ, ﾆ, ﾇ, ﾈ, ﾉ, ﾊ, ﾋ, ﾌ, ﾍ, ﾎ, ﾏ, ﾐ, ﾑ, ﾒ, ﾓ, ﾔ, ﾕ, ﾖ, ﾗ, ﾘ, ﾙ, ﾚ, ﾛ, ﾜ, ﾝ, ﾞ, ﾟ
rem /; 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31    32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62
rem /;
for /F "tokens=1-31* delims=," %%｡  in ("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62") do for /F "tokens=1-31 delims=," %%ﾁ in ("%%ﾀ") do echo;%%｡-%%ｿ,%%ﾁ-%%ﾟ

rem /;
rem /; 継ぎ目有り 1-81
rem /; ※ 全角は「ァ」は、［ァ～ミ］で文字列が途切れる
rem /;                                                                                              継                                                                                              継
rem /; ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん
rem /;  1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31    32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62    63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81
rem /;
for /F "tokens=1-31* delims=," %%ぁ in ("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81") do for /F "tokens=1-31* delims=," %%ち in ("%%だ") do for /F "tokens=1-19 delims=," %%め in ("%%む") do echo;%%ぁ-%%た,%%ち-%%み,%%め-%%ん
```