Les variables dans un batch

Pour accéder à une valeur d'une variable de variable, il y a 3 solution possible MAIS on doit utiliser obligatoirement “setlocal enableDelayedExpansion”

Example:

@echo off
cls
setlocal enableDelayedExpansion

set PC1=maVariabale1
set PC2=maVariabale2

REM méthode 1: construction de la variable dynamiquement
for /F "tokens=1,* delims=-" %%a IN ('hostname') do (
if "%%b"=="" exit 1
set var=!%%b!
)
if "%var%"=="" set var=pasDeVariable
echo %var%

REM méthode 2 : construction de la variable depuis une liste
for %%a IN (1 2 3) do (
    set var=!PC%%a!
    echo var=!var!
    if "%var%"=="" echo Pas de variable
)
if "%var%"=="" set var=pasDeVariable
echo %var%

REM méthode 3: construction de la variable manuellement
set i=1
set var=!PC%i%!
echo %var%

pause

Bonus:

variables non documentés: https://ss64.com/nt/syntax-variables.html

Dernière modification : le 2024/04/03