Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2863 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1508301
billou81
Posté le 29-01-2007 à 16:20:51  profilanswer
 

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.
 

mood
Publicité
Posté le 29-01-2007 à 16:20:51  profilanswer
 

n°1509048
pascale73
Posté le 31-01-2007 à 12:01:22  profilanswer
 

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
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 

Sujets relatifs
comment créer le batch suivant qui est en pannerealiser un batch DOS
batch qui ping toutes les machines d'un réseau[VB] créer un batch config réseaux
[Batch - Win XP] Commande ECHO et "&"[Shell/Batch] un bat pour créer des répertoires ?
[batch] Exécuter un batch à distance[Batch] Lire une variable d'environnement en batch
[Perl] Récupérer valeur d'un programme Perl dans un batchrm -rf en batch sur windows 2000?
Plus de sujets relatifs à : BATCH: pb d'enlevement de carractere a une varriable.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR