1
私は次のコードを使用しています。ループの外側でarray.batを呼び出すと、出力の値が異なる私は通話中に使用しました。出力変数の値がループ内で変化しないのはなぜですか?Windowsバッチ
@echo off
set empresas[0]=EPB
set empresas[1]=ENF
set empresas[2]=ESE
set empresas[3]=ESS
set empresas[4]=EBO
set empresas[5]=EMG
set empresas[6]=EMT
set empresas[7]=ETO
call array.bat len empresas length
call array.bat getitem empresas 0 empresa1
echo %empresa1%
call array.bat getitem empresas 1 empresa1
echo %empresa1%
echo %length%
for /l %%x in (0, 1, %length%) do (
call array.bat getitem empresas %x% empresa3
echo %empresa3%
echo %%x
)
このコードは出力を生成する:
EPB
ENF
7
ETO
0
ETO
1
ETO
2
ETO
3
ETO
4
ETO
5
ETO
6
ETO
7
のみTHA最後の値がprinttedされています。
[Windowsバッチ変数は設定されません]の可能な複製(https://stackoverflow.com/questions/9681863/windows-batch-variables-wont-set) – SomethingDark
これは同じ質問ではありません。値はループ内でのみ変化しません。 –
正確に同じ質問です。コードブロックの内部で設定された変数は、遅延拡張が有効になっていない限り、コードブロックの最後まで更新されません。 – SomethingDark