コマンドの複数行の実行結果を変数に代入

無線LANのMACアドレスとコンピュータ名を取得し、サーバー上にあるCSVファイルに書き込む

@ECHO OFF
NET USE Z: <サーバーへのパス> <パスワード> <ユーザー名>
@ECHO “MACアドレスを登録します”
FOR /F %%a IN (‘ECHO “%COMPUTERNAME%”^,’) DO SET PCNAME=%%a
FOR /F “delims=*” %%i IN (‘getmac /v /fo csv ^| findstr ワイヤレス’) DO @SET MAC=%%i
ECHO %PCNAME% %MAC%>>z:\hogehoge.csv
NET USE Z: /delete
@ECHO “MACアドレスの登録が完了しました”
PAUSE

実行結果を複数行格納

@echo off
setlocal enabledelayedexpansion
set RESULT=
for /f "usebackq tokens=*" %%i in (`dir`) do (
  set RESULT=!RESULT!^

%%i
)
echo !RESULT!
endlocal

for文の中で値を変化させたい場合はfor文全体を、「setlocal enabledelayedexpansion」と「endlocal」で挟む。
for文内で使用する変数は「%」ではなく「!」で囲む。

@echo off
 
setlocal enabledelayedexpansion
 
set sum=0
for /l %%n in (1,1,10) do (
  set /a sum=!sum!+%%n
  echo !sum!
)
 
endlocal