[ホーム] -
[バッチファイル サンプル一覧] - [プログラムの標準出力を変数に代入する]
プログラム (.exe や .bat など) の実行結果としての標準出力を変数に代入する方法を紹介します。
Windows 標準機能ではないため、トリックを使用して実現します。代入できないため、標準出力を一時ファイルに代入してから、一時ファイルの値を変数に代入します。
これは set /p オプションで実現します。
以下の例ではCoreShell という文字が含まれるファイル名を検索し、変数 VAR に代入しています。
echo %VAR% で確認が可能です。
tempファイル名は任意です。tempに日付を付けていますが重ならなければ問題ないでしょう。
サンプルコード:
dir /b c:\windows\system32 | findstr CoreShell > c:\temp\temp20190131.txt
set /p VAR=<c:\temp\temp20190131.txt
del c:\temp\temp20190131.txt
実行結果:
c:\>dir /b c:\windows\system32 | findstr CoreShell.dll 1>c:\temp\temp20190131.txt
c:\>set /p VAR= 0<c:\temp\temp20190131.txt
c:\>del c:\temp\temp20190131.txt
C:\>echo %VAR%
CoreShell.dll
IPアドレスを変数に代入します。複数のIPがアサインされている場合は一つだけアサインされる点に注意してください。
サンプルコード:
ipconfig | findstr IPv4 1>c:\temp\temp20190323.txt
set /p IPADDRESS= 0<c:\temp\temp20190323.txt
del c:\temp\temp20190323.txt
実行結果:
c:\>ipconfig | findstr IPv4 1>c:\temp\temp20190323.txt
c:\>set /p IPADDRESS= 0<c:\temp\temp20190323.txt
c:\>del c:\temp\temp20190323.txt
C:\>echo %IPADDRESS%
IPv4 アドレス . . . . . . . . . . . .: 10.0.0.1
MACアドレスを変数に代入します。
サンプルコード:
getmac | findstr -i tcpip 1>c:\temp\temp20190323.txt
set /p MAC= 0<c:\temp\temp20190323.txt
del c:\temp\temp20190323.txt
実行結果:
c:\>getmac | findstr -i tcpip 1>c:\temp\temp20190323.txt
c:\>set /p MAC= 0<c:\temp\temp20190323.txt
c:\>del c:\temp\temp20190323.txt
C:\>echo %MAC%
**-**-**-**-**-** \Device\Tcpip_{********-****-****-****-************}
本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)
[ホーム] - [バッチファイル サンプル一覧]