IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Supprimer espace au début et à la fin d'une variable [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 88
    Par défaut Supprimer espace au début et à la fin d'une variable
    Bonjour,
    Je souhaiterais supprimer les espaces au début et à la fin d'une variable.

    Exemple:

    MA_VARIABLE=" tintin et milou "

    je voudrais en sortie "tintin et milou"

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Vous pouvez faire quelque chose comme ce
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    @echo off
    Title Trimming une variable
    Set MA_VARIABLE=" tintin et milou "
    echo(
    echo Variable avec espaces MA_VARIABLE=%MA_VARIABLE%
    Call :Trim %MA_VARIABLE% MA_VARIABLE
    echo(
    echo Variable sans espaces MA_VARIABLE="%MA_VARIABLE%" 
    pause>nul & exit
     
    Rem --------------------------------------------------------------
    :Trim <Var> <NewVar>
    (
        echo Wscript.echo Trim("%~1"^)
    )>"%tmp%\%~n0.vbs"
    for /f "delims=" %%a in ('Cscript /nologo "%tmp%\%~n0.vbs"') do ( 
        set "%2=%%a" 
    )
    Del "%tmp%\%~n0.vbs"
    exit /b
    Rem --------------------------------------------------------------
    ou bien avec cette méthode en batch pur sans passer par un vbs
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @echo off
    Title Trimming une variable
    Set MA_VARIABLE=" tintin et milou "
    echo(
    echo Avec espaces :  MA_VARIABLE=%MA_VARIABLE%
    REM La commande FOR peut être utilisée pour supprimer en toute sécurité les guillemets entourant une chaîne.
    REM Si la chaîne n'a pas de guillemets, elle restera inchangée.
    for %%a in (%MA_VARIABLE%) do set MA_VARIABLE=%%~a
    REM Trim Left - Couper les espaces depuis le début d'une chaîne via la commande "FOR"
    for /f "tokens=* delims= " %%b in ("%MA_VARIABLE%") do set MA_VARIABLE=%%b
    REM Trim Right supprimer l'espace depuis la fin de la chaîne
    if "%MA_VARIABLE:~-1%"==" " set MA_VARIABLE=%MA_VARIABLE:~0,-1%
    echo(
    echo Sans espaces :  MA_VARIABLE="%MA_VARIABLE%" 
    pause>nul & Exit

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 88
    Par défaut
    Merci beaucoup hackoofr!

    La petite méthode pour faire des sauts de ligne avec le "echo (" je ne l'avais pas dans mes archives

    Je vais retenir la méthode en batch pure! Au top!
    Que j'ai modifié comme ci-dessous:
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    @echo off
    Title Trimming une variable
    Set MA_VARIABLE="     tintin et milou      "
    echo(
    echo Avec espaces :  MA_VARIABLE=%MA_VARIABLE%
    REM La commande FOR peut être utilisée pour supprimer en toute sécurité les guillemets entourant une chaîne.
    REM Si la chaîne n'a pas de guillemets, elle restera inchangée.
    for %%a in (%MA_VARIABLE%) do set MA_VARIABLE=%%~a
    REM Trim Left - Couper les espaces depuis le début d'une chaîne via la commande "FOR"
    for /f "tokens=* delims= " %%b in ("%MA_VARIABLE%") do set MA_VARIABLE=%%b
    REM Trim Right supprimer l'espace depuis la fin de la chaîne
    :loop
    if "%MA_VARIABLE:~-1%"==" " (
    	set MA_VARIABLE=%MA_VARIABLE:~0,-1%
    	goto loop
    )
    echo Sans espaces :  MA_VARIABLE="%MA_VARIABLE%" 
    pause>nul & Exit

    Merci encore!

  4. #4
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Hou lala vous compliquez les enfants !!!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    MA_VARIABLE=" tintin et milou "
    set MA_VARIABLE=%MA_VARIABLE:~1,-1%
    
    echo %MA_VARIABLE%

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enlever les espaces de début et de fin
    Par wperle dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/08/2013, 13h54
  2. Réponses: 2
    Dernier message: 31/07/2009, 11h10
  3. [E-07] selection identique au début et à la fin d'une macro
    Par jblouvieaux dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/11/2008, 08h37
  4. Réponses: 3
    Dernier message: 21/04/2008, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo