9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

For文のtokensの最大値は31、とそれを超える使い方

Last updated at Posted at 2016-01-12

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

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

For文を使ってdelimsに「,」を指定すると
CSVファイルの指定の列の内容が取り出せます。
変数を%%Aで指定すれば、
エクセルのように%%A=A列の感覚で使えます。

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

だがしかし

tokensの最大値は31という制限があるので
半角カナ変数を使っても、31列が限界になってしまいます。

そこで

tokensの継ぎ足し機能を使って
なんとか81列まで指定出来ました。

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

比較.jpg

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;%%ぁ-%%た,%%ち-%%み,%%め-%%ん
9
2
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?