Bonjour,
Ma première réaction a été de me dire que c'était impossible... et qu'il fallait écrire ceci :
@echo off
set valeur=%1
set dest=azertyuiopqsdfghjklmwxcvbn
if "%valeur%" equ "10" set toto=%dest:~0,-10%&pause
if "%valeur%" equ "9" set toto=%dest:~0,-9%&pause
if "%valeur%" equ "8" set toto=%dest:~0,-8%&pause
if "%valeur%" equ "7" set toto=%dest:~0,-7%&pause
if "%valeur%" equ "6" set toto=%dest:~0,-6%&pause
......
echo %dest%
echo %toto%
pause
Mais j'ai continué à chercher, et en fait, il suffit simplement d'utiliser l'expansion retardée des variables d'environnement de cette manière :
setlocal enabledelayedexpansion
set /a valeur=%1
set dest=azertyuiopqsdfghjklmwxcvbn
set toto1=!dest:~0,-%valeur%!
echo %toto1%
echo %dest%
endlocal