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 :

Accent et apostrophe dans une variable [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut Accent et apostrophe dans une variable
    Bonjour a tous ,
    J'ai un petit souci avec une variable qui prend sur certaine valeurs des accents et des apostrophes :
    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
    16
    17
    18
    19
    20
    21
    @echo off
    
    setlocal EnableDelayedExpansion
    for /F "tokens=* skip=4 delims=*" %%a in ('net localgroup') do (
    	set group=%%a
    	echo.
    	echo #####################################################
    	echo GROUPE : !group!
    	if !group! NEQ "La commande s'est terminée correctement." (
    		for /f "tokens=* skip=6" %%a in ('net localgroup "!group!"') do (
    			SET user=%%a
    			for /f "tokens=1,2 delims=\" %%i in ('echo !user!') do (
    				if %%i == DOMAINE1 (
    					net localgroup !group! /add "DOMAINE2\%%j"
    					echo 	DOMAINE1\%%j	^>	DOMAINE2\%%j
    				)
    			)
    		)
    	)
    )
    endlocal
    Explication:
    Ce script énumère tous les groupes d'un poste local et sur chaque groupe énumère les utilisateurs, cherche ceux d'un domaine1 pour les faire passer sur un domaine2

    J'ai deja essayé apres le @echo off de placer:
    CHCP 65001
    CHCP 28591
    chcp 850
    chcp 863
    Aucun n'a débloqué le problème.
    Si quelqu'un a une solution pour ça je suis preneur et remercie par avance tous ceux qui auront pris le temps de lire mon problème.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    personne n'a d'idée sur la question ou ce post est il passé inapercu ?

  3. #3
    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
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    c'est dans tes noms d'utilisateurs que tu as des noms avec accents et apostrophes ?
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Alors en fait non c'est dans les groupes qu'il y a des apostrophe, les accents ne pose plus de problème mais je suis toujours ennuyé avec certains groupes:
    - Lecteurs des journaux d’événements
    - Utilisateurs de l’Analyseur de performances

    Ma requêtes les remontes tel qu'elle dans la variable jusque la pas de problème.
    Mais lorsque je réutilise la variable pour migrer les utilisateurs du groupe il me dit que le groupe n'existe pas ...
    Dans l'exemple ce sont des groupes génériques qui ne serviront surement pas a grand chose mais dans mon parc j'ai d'autres groupes qui sont susceptible de posé problème et que je ne peux renommer.

    Bref si vous avez une solution au pb je suis preneur.

  5. #5
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    salut,

    Je n'ai fait que parcourir ton script, je sais pas si t'as testé avec chcp 1252, si c'est pas le cas, essaye.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    oui j'ai déjà Testé le 1252 aussi et bien d'autres, mais de ce coté rien a faire l'apostrophe bloque a chaque fois.

  7. #7
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    à la ligne 14 il manque des guillemets doubles autour de "!group!"...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Merci pour vos aide ,
    J'ai déjà testé "!group!" ça ne change rien.
    Je pense que ca fera parti de mon pourcentage d'erreur

  9. #9
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    J'ai fait un test sur une ligne, je n'ai pas rencontré de problèmes

    net localgroup "group's test" /add "domainex\name"

    il y a peut-être un effet de bord avec ton script, peut-être déjà avec les skips et aussi avec les noms composés de certains utilisateurs .

    for /f "tokens=1,2 delims=\" deviendrait for /f "tokens=1,* delims=\"

    il serait peut-être utile aussi de filtrer au préalable avec findstr

    net ... | findstr /i "domaine1\\.*"

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    Alors j'ai fait le même test étant un peu perplexe ...
    je l'ai fait avec une variable pour être sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set group="group's test"
    net localgroup %group% domain\user /add
    et ça marche ...
    Je sèche un peu sur ce coup.
    Il semblerait que les groupes "Lecteurs des journaux d’événements" et "Utilisateurs de l'Analyseur de performances" soit un peu particulier.
    Même en écrivant le nom de groupe tel quel entre guillemet la commande ne fonctionne pas non plus, et toujours ce fameux
    Le groupe n'existe pas
    Effectivement les groupes avec des apostrophes qui sont créé a la main ne pose pas de problème.
    Donc vu que je n'ai rien a faire de ces 2 groupes la cela va réduire d'autant les erreurs potentielles.
    Mais quand même quelqu'un aurait il une explication même si celle ci ne touche plus vraiment a la programmation windows

  11. #11
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Je viens de faire une petite recherche en ce sens et vraisemblablement c'est une limitation de la commande net.exe qui n'accepte pas les noms de groupes ou d'utilisateurs de plus de 20 caractères pour une histoire de compatibilité avec LAN Manager 2.0

    -> http://support.microsoft.com/kb/324639 (en)

    Sur le lien sont présentées également quelques méthodes alternatives...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 47
    Points : 57
    Points
    57
    Par défaut
    OK ça s'explique donc ... dommage que ce soit des groupes créés par Microsoft eux même ...
    Je sais ou est la limitation je ferais avec du coup merci a tous.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/01/2015, 10h50
  2. Afficher un apostrophe contenu dans une variable
    Par Daviloppeur dans le forum Langage
    Réponses: 4
    Dernier message: 28/10/2009, 13h41
  3. Résultat d'une requête dans une variable...
    Par Hoegaarden dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/04/2004, 13h51
  4. Réponses: 6
    Dernier message: 24/07/2003, 12h39
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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