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 :

Enlever les espaces d'une variable [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut Enlever les espaces d'une variable
    Hello,

    Étant relativement nouveau dans le fabuleux monde du Batch, mon problème est peut-être tout bête (et même que le reste du script contient des erreurs) mais je vous avoue que je ne comprends pas :

    Mon objectif dans cette partie de script :
    Récupérer le modèle de mon pc puis enlever les deux espaces créés par la commande "wmic csproduct get name" (qui va retourner 3 lignes, la deuxième étant celle qui m'intéresse). Pour l'instant j'ai ceci :

    Code : 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 ON
    setlocal enabledelayedexpansion
    
    FOR /F "usebackq delims=, skip=1" %%i IN (`wmic csproduct get name`) DO (
    	SET "model=%%i"
    	echo.!model!
    	SET model=%model: =%
    	echo.!model!
    	goto suite
    	)
    
    	
    :suite
    echo La commande renvoit comme resultat %model%
    pause
    Ce qu'il se passe, c'est qu'il récupère bien la deuxième ligne, avec les deux espaces non-désirés à la fin, mais mon "SET model=%model: =%" ne fonctionne pas. Il set ma variable "model" à "=" et donc echo = ensuite...

    d'après ce site :
    http://www.dostips.com/DtTipsStringM...s.RemoveSpaces
    c'est pourtant bien ça...

    Merci d'avance pour votre aide!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    J'ai trouvé!

    J'ai viré le deuxième 'SET' et j'ai manuellement rajouté deux espaces dans la valeur string que je compare ensuite... c'est un peu la méthode clodo mais ca fonctionne :p

  3. #3
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Salut, j'ai une autre solution pour toi.
    Pour remplacer un caractère par un autre (ou rien dans ce cas précis):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off&cls
    setlocal EnableDelayedExpansion
    
    set $VAR=Salut les filles
    set $VAR=!$VAR: =!
    REM Si tu veux remplacer l'espace par un -
    REM set $VAR=!$VAR: =-!
    echo !$VAR!
    pause

  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
    Salut,

    ton problème en fait est la sortie Unicode de wmic.

    Tu peux résoudre ce problème en échappant la sortie unicode par une sortie de Find qui elle est Ascii.
    De cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @ECHO Off
    
    FOR /F "delims=" %%i IN ('wmic csproduct get name ^| find "-"') DO (
    SET "model=%%i")
    echo.[%model: =%]
    Ou dans ton cas cette solution peu également fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    FOR /F "skip=1 delims=" %%i IN ('wmic csproduct get name') DO (
    SET "model=%%i"
    goto:next)
    
    :next
    echo.[%model: =%]


  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    merci pour vos réponses !

    c'est donc résolu!

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

Discussions similaires

  1. [PHP 5.0] Enlever les doublons dans une variable
    Par raphy31 dans le forum Langage
    Réponses: 10
    Dernier message: 26/03/2014, 10h10
  2. Supprimer les espaces dans une variable
    Par anas.eh dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/08/2008, 17h19
  3. enlever les espaces blancs d une chaines de caracteres
    Par Mobistar dans le forum Débuter avec Java
    Réponses: 19
    Dernier message: 04/08/2008, 19h26
  4. supprimer les espaces dans une variable
    Par dams78 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 10/12/2007, 23h02
  5. enlever tous les espaces d'une chaine
    Par franfr57 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2007, 09h00

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