- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:msdosのfor /fのtokens=の挙動)
msdosのfor /fのtokens=の挙動
このQ&Aのポイント
- Windows7のmsdosのfor /fのtokens=の挙動について、指定したトークンの取り出し方が思った通りにならない理由について詳しく説明しています。
- 具体的には、tokens=1,3とした場合とtokens=1-3とした場合の違いや、サンプルのコードと実際の結果の違いについて説明しています。
- 実際には、例示されたコードでは、1番目のトークンしか取り出されておらず、なぜそのような結果になるのかについても解説しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> echo %%a %aしかechoしていないからです。tokensで複数を指定した場合は、その後で指定した変数にすべてが入るのではなく、追加の変数名に割り当てられます。今回の場合であれば、2番目は%bに、3番目は%cに入ります。 使用例を検索すれば、%iを指定しているのに、実行するコマンドで%i,%j,%kのように複数使用しているのが見つかるはずです。 forコマンドのヘルプでも >FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k のような例が書かれています。 #ちなみに、Windows7にMS-DOSはありません。コマンドプロンプトです。
お礼
%%bと%%cを追加したら表示されるようになりました。 MS-DOSではなくコマンドプロンプトと表記するようにします。 ありがとうございました。