【Batch】バッチ ~ コマンド結果を変数に格納する ~

■ はじめに

小ネタ。

Windowsバッチで出力結果を変数に格納する方法についてメモ。
Bashだと「RESULT=`wc -l hello.txt`」みたいに簡単にできるが、、、

目次

【1】Windowsバッチで出力結果を変数に格納するには
【2】FORコマンド
 1)オプション
 2)トークンオプション
【3】基本構文
【4】サンプル
 1)hostname
 2)AWS CLIの結果を変数に格納

【1】Windowsバッチで出力結果を変数に格納するには

* 繰り返しのFOR コマンドを利用する

【2】FORコマンド

* 繰り返し処理

https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/for

1)オプション

Options Explanation
/f テキストファイル内の文章に対してトークンを取り出して代入する

2)トークンオプション

Options Explanation
delims=[xxx] 区切り記号セットを指定

【3】基本構文

FOR /F %%i in (【コマンド】) DO @SET 【変数】=%%i

【3】サンプル

1)hostname

@echo off
FOR /F %%i in ('hostname') DO @SET result=%%i
echo %result%

2)AWS CLIの結果を変数に格納

AWS Systems Manager ~ AWS CLI
https://dk521123.hatenablog.com/entry/2024/05/01/000000

et MWAA_HOST=xxxxx
set MWAA_NAME=xxxxxx

for /f "delims=" %%A in ('aws mwaa create-web-login-token --name %MWAA_NAME% --query WebToken --output text') do set WEB_TOKEN=%%A
set MWAA_UI_URL="https://%MWAA_HOST%:18081/aws_mwaa/aws-console-sso?login=true#%WEB_TOKEN%"

参考文献

https://blog.treedown.net/entry/2020/04/02/010000
https://maku77.github.io/windows/io/set-command-result.html
https://www.javadrive.jp/command/bat/index10.html
forコマンド
https://so-zou.jp/software/tool/system/command-prompt/command/for.htm

関連記事

バッチ ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2010/07/06/223905
AWS Systems Manager ~ AWS CLI
https://dk521123.hatenablog.com/entry/2024/05/01/000000