Batch: Enable Delayed Expansion
Rendszer / Windows batch (1517 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) |