BATCH: pb d'enlevement de carractere a une varriable.

BATCH: pb d'enlevement de carractere a une varriable. - Shell/Batch - Programmation

Marsh Posté le 29-01-2007 à 16:20:51    

Bonjour @tous ....
 
torture neuronale en vue ...  :pt1cable:  :bounce:  :ouch:  :cry: :
 
J'ai ce bout de script pour lequel je souhaite enlever a une varriable un nombre de carractere.
ex :
 
---------------------------- Debut --------------------------
@echo off
set dest=azertyuiopqsdfghjklmwxcvbn
set toto=%dest:~0,-10%
echo %toto%
pause
---------------------------- Fin------------------------------
 
 
resultat affichage :
-------------------------------------------------------------
azertyuiopqsdfgh
Appuyez sur une touche pour continuer...
-------------------------------------------------------------
ce qui est rechercher pour ce cas si on eleve -10 a la varriable.
 
sauf que se nombre de carractere que je soustrait n'est pas fixe : -10mais varriable  %1
 
---------------------------- Debut --------------------------
@echo off
set dest=azertyuiopqsdfghjklmwxcvbn
set toto=%dest:~0,%1%
echo %toto%
pause
---------------------------- Fin------------------------------
pas de solution trouver ...
 
2 semaine dessu je ne trouve pas ...
 
 
une idée  :ange:  je prend   :jap:  
 
j'espere que sa en aidera d'autre ...
 
merci d'avance et bon surf  
 
billou81.
 

Reply

Marsh Posté le 29-01-2007 à 16:20:51   

Reply

Marsh Posté le 31-01-2007 à 12:01:22    

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
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed