Batch: Enable Delayed Expansion

Rendszer / Windows batch (1334 katt)

Ha a Windows batch-ben létrehozzuk és lefuttatjuk az alábbi ciklust:

for %%A in (1 2 3 4 5) do (
echo %%A
)



akkor a várakozásnak megfelelően az 1..5 számokat fogjuk kapni.

Ha viszont az alábbi scriptet futtatjuk:

set I=1000

for %%A in (1 2 3 4 5) do (
set I=%%A
echo %I%
)



akkor a program ötször kiírja egymás után az 1000 számot, pedig láthatóan nem ezt akartuk.

Ez a probléma a környezeti változók behelyettesítésével kapcsolatos. Ha bővebb infót szeretnénk róla kapni, akkor érdemes elolvasni a set parancs helpjét elolvasni (set /?). Megoldásként az alábbi script használható:

setlocal enabledelayedexpansion

for %%A in (1 2 3 4 5) do (
set I=%%A
echo !I!
)

endlocal


Előző oldal Kapitány
Vélemények a műről (eddig 1 db)