Windows コマンド(バッチ) for /f の"tokens=1*&quo

Writer: admin Type: 消費者問題 Date: 2019-03-05 00:00
Windows コマンド(バッチ) for /f の"tokens=1*"と"tokens=*"は同じ意味ですか?補足ちなみに、tokensを指定しない(なし)場合はどうなりますか?この場合も、指定しない(なし)=全部になるのですか?("tokens=1*"と"tokens=*"と同じ意味になるのですか?)共感した0###Windows コマンド(バッチ) for /f の"tokens=1*"と"tokens=*"は同じ意味・・・ではないです。 A1 B1 C1 D1 E1 F1という内容で a.txt というファイルで保存します。---------------------------for /F "tokens=*" %a in (a.txt) do echo %aでは、A1 B1 D1 E1 F1と、全ての文字が変数 %a 1つで表示されます。---------------------------for /F "tokens=1*" %a in (a.txt) do echo %aでは、A1と、1つしか表示されません。--------------------------for /F "tokens=1*" %a in (a.txt) do echo %a %bと、変数 %b を付け加えると、A1 B1 D1 E1 F1と、全て表示されます。%a が A1 を表示し、* はそれより後、1より後のトークン*(%b)が、それより後を全て表示します。--------------------------for /F "tokens=1,2*" %a in (a.txt) do echo %a %b %cでは、A1 が トークン1(%a)、B1 が トークン2( %b)、D1 E1 F1 が トークン* (%c)で表示されることになります。 ---------------------------区切る位置とその数が tokens ですが、区切り文字オプションで "delims=" にして、区切らないようにすれば、変数1つで全てを表示できます。"tokens=*" と "delims=" の違いは、先頭に空白がある場合、"tokens=*" は空白が省略されます。"delims=" は、空白も表示します。tokens を使用しないと、変数は、1つしか使えないことになり、位置も最初の区切りの A1 しか表示されません。 %b と変数を増やしても ただ、%b と表示されるだけで、意味を持ちません。###詳しい回答ありがとうございました!!

 

TAG