- 追加された行はこの色です。
- 削除された行はこの色です。
#navi(コマンド別)
#contents
////////////////////////////////////////////////////////////////////////////
*forの制御変数に使える文字 [#j491530c]
for /? を見ると、A-Z a-z の合計52個のようだが、実際には % 以外のほとんどの
記号が使えるようである。ただし、特殊文字については ^ によるクォートが必要。
for %%^" in (1 2 3) do echo %%^"
また、tokens= 指定による追加の変数もASCIIコード順に割り当てられる。
for /f "tokens=1-3" %%Z in ("A B C") do echo %%Z %%[ %%\
////////////////////////////////////////////////////////////////////////////
*カッコ内のでの改行や区切り [#bfd14dbd]
in 部のカッコ内においても、区切りのところで ^ を書かずとも改行できる。
for %%I in (A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
) do echo %%I
また、要素の区切りには空白のほか、= ; , も使用できる。
for %%I in (A=B;C,D) do echo %%I → A B C D を順に表示
従って、in 部の (' ') や (` `) 内でこれらの文字を使う必要があるときは ^
によるクォートが必要。(" ") では " " が = 等もクォートするので不要。
( ) 内では、^ をつけても駄目である。
for /f "delims=" %%A in ('echo =') do echo %%A → ECHO は <ON> です。を表示
for /f %%A in ('echo ^=') do echo %%A → = を表示
for /f %%A in ("A=;,B") do echo %%A → A=;,B を表示
for %%A in (A ^= ^; ^,) do echo %%A → A のみ表示
////////////////////////////////////////////////////////////////////////////
*"delims=" と "tokens=*" [#ia082c53]
読み取った文字列を分割しない場合、for /f "delims=" と for /f "tokens=*" の
2通りの方法がある。前者は区切り文字無しを指定、後者は区切り文字はデフォルトだが
全てのトークンを得るという違いがある。具体的には、前者では文字列そのままが
得られ、後者では先頭の空白文字が削除されて得られるという違いになる。
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
#navi(コマンド別)