2016年8月30日火曜日

バッチで環境変数を配列としてfor文でまわす

バッチで環境変数を配列としてfor文でまわす


バッチファイルで環境変数を配列としては使用できません。
なので、配列っぽくしてみました。

callを使う場合

:----バッチファイルで配列(call 利用)----
@echo off
set key[0]="value0"
set key[1]="value1"
set key[2]="value2"
set key[3]="value3"
set key[4]="value4"
for /L %%i in (0,1,4) do (
call echo %%key[%%i]%%
)

setlocal ENABLEDELAYEDEXPANSION を使う場合

:----バッチファイルで配列(ENABLEDELAYEDEXPANSION)----
@echo off
set key[0]="value0"
set key[1]="value1"
set key[2]="value2"
set key[3]="value3"
set key[4]="value4"
setlocal ENABLEDELAYEDEXPANSION
for /L %%i in (0,1,4) do (
echo !key[%%i]!
)
endlocal

フォルダー内のファイルをバッチで環境変数を配列としてfor文でまわす

----バッチファイルで配列(ファイル一覧)----
@echo off
setlocal ENABLEDELAYEDEXPANSION
set cnt=0for /f %%i in ('dir /b C:\batfiles\*.bat') do (
set /A cnt=cnt+1
set files[!cnt!]="%%i"
)
for /L %%i in (0,1,%cnt%) do (call !files[%%i]!) 



0 件のコメント:

コメントを投稿