■
@echo off for /F "delims=: tokens=1,2 " %%i in (' ipconfig ^|find /i "ip address" ') do call :IPADD %%j goto END :IPADD @set MYIP=%MYIP%[IP:%1] exit /b :END echo %MYIP% pause
出力例:[IP:10.0.0.11][IP:172.16.0.11][IP:192.168.0.11]
参考ページ
バッチメモ(Hishidama's bat-file Memo)
>for /f "tokens=2-4" %i in ("a b c d e") do @echo %i %j %k
b c d番号の代わりに「*」を指定すると、行の残りの部分全てになる。
>for /f "tokens=1,*" %i in ("a b c d e") do @echo %i -- %j
a -- b c d e
バッチメモ(Hishidama's bat-file Memo)
環境変数はその行全体の実行開始前に展開される
サブルーチン化してやれば解決set list= for %%i in (aa bb) do @call :add %%i echo %list% exit/b :add @set list=%list%;%1 exit /b
@ECHO OFF SET /P x=abc<NUL SET /P x=efg<NUL
コマンドプロンプトを使う - |▽ ̄)ノ なページ再帰 - livedoor Wiki(ウィキ)
特殊記号
コマンドプロンプトではアンパサンド(&)、パイプ(|)、開閉括弧( () )、大なり(>)、小なり(<)を特殊記号として扱います。これらの記号を文字として扱う場合はハット(^)によりエスケープします。ハットそのものはハットによりエスケープします。
echo &
echo ^&
echo ^^
パイプ(|)は前実行コマンドの標準出力を、後続するコマンドの標準入力として渡します。
二重パイプ(||)は複数コマンドを1行に並べて実行する場合に使用します。前実行コマンドが異常終了した場合に後続するコマンドが実行されます。
二重アンパサンド(&&)は複数コマンドを1行に並べて実行する場合に使用します。前実行コマンドが正常終了した場合に後続するコマンドが実行されます。
アンパサンド(&)は複数コマンドを1行に並べて実行する場合に使用します。前実行コマンドの結果にかかわらず実行されます。
開閉括弧( () )はコマンドのグループ化/ネストを行います。
大なり(>)は標準出力をファイルにリダイレクトします。
二重大なり(>>)は標準出力をファイルの末尾に追加します。
ファイルハンドルのリダイレクト(>&)は左値を右値にリダイレクトします。 2>&1 とした場合は、標準エラー出力のファイルハンドル(2)を標準出力のファイルファンドル(1)にリダイレクトします。
ファイルハンドルのリダイレクト(<&)は >& の逆です。右値を左値にリダイレクトします。
小なり(<)はファイルを標準入力にリダイレクトします。
セミコロン(;)はコマンド引数の区切りとして使用します。
パーセント(%)は環境変数を指定する場合に使用します。パーセント記号を文字として扱うには二重(%%)にします。
echo 2 & echo 1
echo 2 & echo 1 | sort
( echo 2 & echo 1 ) | sort
%COMSPEC% /c "exit 1" && echo done
%COMSPEC% /c "exit 1" || echo fail
%COMSPEC% /c "exit 1" & echo ignore
%COMSPEC% /c "exit 0" || echo fail
dir /ah%HOMEDRIVE%
dir /ah;%HOMEDRIVE%
その他
title コマンドはコマンド プロンプトのタイトルを設定します。
ピリオド付の echo コマンド(echo.)は改行を出力します。
コマンドの頭にアット(@)を付けると行をエコーしなくなります。