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 :

Problème d'encodage sur le contenu d'une variable [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut Problème d'encodage sur le contenu d'une variable
    Bonjour à tous,

    Je rencontre une problématique d'encodage des caractères avec une variable contenant le résultat d'une commande wmic et j'en appelle à vos lumières pour m'éclairer

    Je souhaite faire un script qui va récupérer le "friendly name" de l'interface réseau active, mettre ce résultat dans une variable pour s'en resservir ensuite avec d'autres commandes.

    J'arrive à faire ce que je veux mais mon problème est que ce résultat n'a pas la même valeur au niveau du caractère accentué selon que je l'affiche (via echo) ou que je la réutilise.

    En effet un echo va me ressortir "Connexion au réseau local" tandis que réutiliser la variable dans une commande netsh prend la valeur "Connexion au r‚seau local" (et je reçois donc un message de syntaxe incorrecte confirmé en redirigeant la sortie dans un fichier texte)

    Je suis loin d'être à l'aise avec les scripts et des optimisations sont certainement possibles mais voici le code que j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    REM on échappe le pipe avec le circonflexe pour prise en charge dans le script
    REM on exclue les lignes ressortant les interfaces réseau des machines virtuelles locales, des interfaces wifi et bluetooth, des interfaces vpn (/v pour exclure /i pour ignorer la casse)
    REM on supprimes les lignes vides de la sortie (/v pour exclure /r pour interpreter la chaine comme une expression régulière)
    REM on place le résultat de la commande dans une variable nic
    @echo off
    cls
    for /F "tokens=* delims==" %%A in ('wmic nic where "NetConnectionStatus=2" get NetConnectionID ^| more +1 ^| findstr /iv virtual ^| findstr /vi "sans fil" ^| findstr /vi wireless ^| findstr /vi vpn ^| findstr /vi tooth ^| findstr /rv "^$"') do set "nic=%%A"
    echo %nic%
    netsh interface ip set address "%nic%" dhcp
    pause
    Voici donc l'output du script, la première ligne étant le résultat de l'echo, la seconde du netsh:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Connexion au réseau local
    La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte.
    Je pourrais inscrire en dur le nom de l'interface réseau et cela fonctionne mais ma volonté est que le script soit le plus dynamique possible, adaptable avec des nomenclatures d'interface en anglais.

    Merci d'avance pour toutes les pistes et explications que vous pourriez apporter à mon interrogation.

  2. #2
    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,

    J'ai l'impression que ça n'est pas la source de ton probleme.

    Es-tu sûr que [Connexion au réseau local] est un argument valable pour netsh ?

    jette un oeil ici : https://technet.microsoft.com/pt-br/...29.aspx#BKMK_1


  3. #3
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut
    Bonjour sachadee

    Merci pour ton retour.

    Toujours est-il qu'en ouvrant un terminal et en saisissant à la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address "Connexion au réseau local" dhcp
    la carte réseau passe bien d'une IP statique à du DHCP donc je suppose que l'argument ne lui déplait pas tant qu ca

    Pareil en static avec l'argument "Connexion au réseau local", la commande s'applique bien

  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
    Autant pour moi !

    Il se passe quoi si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address "%nic:‚=é%" dhcp
    ou le contraire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address "%nic:é=‚%" dhcp

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 29
    Par défaut
    j'ai un script de modification du dns qui marche sur W7.

    il utilise en plus les arguments:
    name et source

    ce qui donnerait dans ton cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address name="%nic%" source=dhcp
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address "%nic%" dhcp
    sinon, pour les problèmes d'accents, on peut utiliser la page de code 28605:
    a mettre en début de script

    Sinon, pour cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address "%nic%" dhcp
    et vu le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte.
    je pencherai plutot pour un problème de " ou autre

    tu devrais ajouter un echo devant ta commande pour voir ce qui est réellement lancé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo   netsh interface ip set address "%nic%" dhcp
    je viens de tester et j'obtiens bizarrement des espaces supplémentaires en plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Connexion au réseau local   "

  6. #6
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut
    Bonjour sachadee et raivac,

    Désolé pour ce retour tardif je n'ai pas pu retravailler sur ce script.

    Je test vos solution et reviens vers le forum avec le résultat.

    Bonne journée

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/11/2007, 15h32
  2. Réponses: 1
    Dernier message: 26/06/2007, 19h32
  3. Problème d'encodage sur MySql 4.1
    Par Blanchet dans le forum Outils
    Réponses: 1
    Dernier message: 04/12/2005, 04h53
  4. Problème de scintillement sur le curseur d'une TTrackbar
    Par xtapola dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/11/2005, 13h51
  5. Index sur le contenu d'une colonne XMLTYPE
    Par haugoyard dans le forum Oracle
    Réponses: 7
    Dernier message: 11/04/2005, 11h10

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