[R] Insérer le résultat d'une variable entre guillemets
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
gabinhocity
- Niveau 2

- Messages : 18
- Enregistré le : jeu. 04 sept. 2014 09:45
- Status : Hors ligne
[R] Insérer le résultat d'une variable entre guillemets
Bonjour à tout le monde,
Je suis entrain de faire un script qui va me permettre de changer le nom de compte utilisateur et ajoute le mot de passe en fonction de ma liste dans la base de donnée sous Windows 8.
Mes commandes sont les suivantes (je vous passe les détails de ma base de données avec les connexions requêtes qui fonctionnent bien)
Func modifier()
_SQLite_Query($bdd, 'SELECT Nom,Prenom,Login,Mdp FROM profs where Id_Unique = ' & '"' & $Valeur_Selectionnee & '"', $hQuery)
While (_SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK)
$Nom = $aRow[0]
$Prenom = $aRow[1]
$Login = $aRow[2]
$Mdp = $aRow[3]
WEnd
Local $iText = GUICtrlRead(GUICtrlRead($List_profs))
$COMPTE = StringSplit($iText, "|", 0)
$Id_Unique = $COMPTE[1]
$Nom = $COMPTE[2]
$Prenom = $COMPTE[3]
$Login = $COMPTE[4]
$Mdp = $COMPTE[5]
Run("wmic useraccount where name='Ancien' rename " & $Login)
MsgBox(1, "", "nom :" & $Nom & " Prénom :" & $Prenom & "Mot de passe :" & $Mdp) ;verifier les infos envoyées
$FullName = $aRow[0]&" "&$aRow[1]
Run('NET USER ' & $Login & ' ' & $Mdp & ' /fullname:' & '"' & $FullName & '"')
MsgBox(1, "", 'NET USER ' & $Login & ' ' & $Mdp & ' /fullname:' & '"' & $FullName & '"');verifier les infos envoyées
EndFunc ;==>modifier
Mon problème se situe au niveau de fullname de la 2eme commande run net user. Le champ envoyé est vide parce que le fullname doit être entre guillemet et je galère à trouver comment mettre le resultat de ma variable $fullname alors $nom et $prenom me retourne bien la valeur attendue.
Merci d'avance
Je suis entrain de faire un script qui va me permettre de changer le nom de compte utilisateur et ajoute le mot de passe en fonction de ma liste dans la base de donnée sous Windows 8.
Mes commandes sont les suivantes (je vous passe les détails de ma base de données avec les connexions requêtes qui fonctionnent bien)
Func modifier()
_SQLite_Query($bdd, 'SELECT Nom,Prenom,Login,Mdp FROM profs where Id_Unique = ' & '"' & $Valeur_Selectionnee & '"', $hQuery)
While (_SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK)
$Nom = $aRow[0]
$Prenom = $aRow[1]
$Login = $aRow[2]
$Mdp = $aRow[3]
WEnd
Local $iText = GUICtrlRead(GUICtrlRead($List_profs))
$COMPTE = StringSplit($iText, "|", 0)
$Id_Unique = $COMPTE[1]
$Nom = $COMPTE[2]
$Prenom = $COMPTE[3]
$Login = $COMPTE[4]
$Mdp = $COMPTE[5]
Run("wmic useraccount where name='Ancien' rename " & $Login)
MsgBox(1, "", "nom :" & $Nom & " Prénom :" & $Prenom & "Mot de passe :" & $Mdp) ;verifier les infos envoyées
$FullName = $aRow[0]&" "&$aRow[1]
Run('NET USER ' & $Login & ' ' & $Mdp & ' /fullname:' & '"' & $FullName & '"')
MsgBox(1, "", 'NET USER ' & $Login & ' ' & $Mdp & ' /fullname:' & '"' & $FullName & '"');verifier les infos envoyées
EndFunc ;==>modifier
Mon problème se situe au niveau de fullname de la 2eme commande run net user. Le champ envoyé est vide parce que le fullname doit être entre guillemet et je galère à trouver comment mettre le resultat de ma variable $fullname alors $nom et $prenom me retourne bien la valeur attendue.
Merci d'avance
Modifié en dernier par gabinhocity le mar. 30 sept. 2014 13:46, modifié 1 fois.
- matwachich
- Membre émérite

- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [..]Inserer le resultant d'une variable entre les guille
Les règles de présentation!!!
Pour votre problème, il faut toujours essayer de bien raisonner :
Quelques petits conseils quand à SQLite:
Au lieux d'ajouter un champ id_Unique, pourquoi ne pas directement utiliser le champ par défaut rowid (qui est fait pour ça)?
Quand vous ajouter des données dans la base, penser à utiliser _SQLite_Escape
Pour votre problème, il faut toujours essayer de bien raisonner :
Code : Tout sélectionner
; écrire la commande
net user login mdp /fullname: "fullname"
; puis la transformer en string
$sCmd = [color=#FF0000]'[/color]net user login mdp /fullname: "fullname"[color=#FF0000]'[/color]
; et enfin, ajouter les variables
$sCmd = 'net user [color=#FF0000]' & $sLogin & ' ' & $sMdp & '[/color] /fullname: "[color=#FF0000]' & $sFullname & '[/color]"'Au lieux d'ajouter un champ id_Unique, pourquoi ne pas directement utiliser le champ par défaut rowid (qui est fait pour ça)?
Quand vous ajouter des données dans la base, penser à utiliser _SQLite_Escape
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
-
gabinhocity
- Niveau 2

- Messages : 18
- Enregistré le : jeu. 04 sept. 2014 09:45
- Status : Hors ligne
Re: [..]Inserer le resultant d'une variable entre les guille
Merci pour ta réponse.
Je ne rajoute rien dans la Bd je prends juste des infos dessus pour changer le nom de compte et le mot de passe de l'utilisateur.
Tout fonctionne bien mais c'est seulement au niveau du Fullname que ca bug. le nom sort bien et le prenom aussi individuellement.
Mais je veux que le full n'aime soit de type en sortie :
net user login mdp /fullname: "nom prenom"
sauf que même en mettant ca :
$sCmd = 'net user ' & $sLogin & ' ' & $sMdp & ' /fullname: "' & $sFullname & '"'
Je n'ai rien dans le fullname par contre le logine et Mdp ca marche
Je ne rajoute rien dans la Bd je prends juste des infos dessus pour changer le nom de compte et le mot de passe de l'utilisateur.
Tout fonctionne bien mais c'est seulement au niveau du Fullname que ca bug. le nom sort bien et le prenom aussi individuellement.
Mais je veux que le full n'aime soit de type en sortie :
net user login mdp /fullname: "nom prenom"
sauf que même en mettant ca :
$sCmd = 'net user ' & $sLogin & ' ' & $sMdp & ' /fullname: "' & $sFullname & '"'
Je n'ai rien dans le fullname par contre le logine et Mdp ca marche
Re: [..] Insérer le résultat d'une variable entre guillemets
Bonjour,
Utilise $nom et $prenom pour faire ton fullname alors, au lieu de $aRow[0] et $aRow[1].
et tu peux peut être tenter :
$FullName = '"' & $aRow[0] & " " & $aRow[1] & '"'
Utilise $nom et $prenom pour faire ton fullname alors, au lieu de $aRow[0] et $aRow[1].
et tu peux peut être tenter :
$FullName = '"' & $aRow[0] & " " & $aRow[1] & '"'
Re: [..] Insérer le résultat d'une variable entre guillemets
Tu peux aussi te passer d'une commande externe telle que "net user", en passant par un UDF.
Celui-là est très bien : http://www.autoitscript.com/forum/topic ... count-udf/
Cela dit, je ne vois pas pour quelle raison ton code ne marche pas.
Quel est le résultat de la command "net user" ?
Celui-là est très bien : http://www.autoitscript.com/forum/topic ... count-udf/
Cela dit, je ne vois pas pour quelle raison ton code ne marche pas.
Quel est le résultat de la command "net user" ?
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
-
gabinhocity
- Niveau 2

- Messages : 18
- Enregistré le : jeu. 04 sept. 2014 09:45
- Status : Hors ligne
Re: [..] Insérer le résultat d'une variable entre guillemets
Merci à tous pour vos réponses mais apres des recherches j'ai reussi à ressoudre mon problème moi même.
C'est le Fullname qui me posait problème car son contenu devait être entre guillemet.
Pour ressourdre mon problème sur ma requête.
_SQLite_Query($bdd, 'SELECT Nom,Prenom,Login,Mdp, (Prenom ||" " ||Nom) AS fullname FROM profs where Id_Unique = ' & '"' & $Valeur_Selectionnee & '"', $hQuery)
While (_SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK)
$COMPTE = StringSplit($iText, "|", 0)
$Id_Unique = $COMPTE[1]
$Nom = $COMPTE[2]
$Prenom = $COMPTE[3]
$Login = $COMPTE[4]
$Mdp = $COMPTE[5]
$FullName = $COMPTE[6]
Donc a partir de se concat il me sort le nom et le prenom directement et je n'ai qu'a mettre dans le net user
Run('NET USER ' & $Login & ' ' & $Mdp & ' /fullname:' & '"' & $FullName & '"')
et la ca fonctionne
C'est le Fullname qui me posait problème car son contenu devait être entre guillemet.
Pour ressourdre mon problème sur ma requête.
_SQLite_Query($bdd, 'SELECT Nom,Prenom,Login,Mdp, (Prenom ||" " ||Nom) AS fullname FROM profs where Id_Unique = ' & '"' & $Valeur_Selectionnee & '"', $hQuery)
While (_SQLite_FetchData($hQuery, $aRow) = $SQLITE_OK)
$COMPTE = StringSplit($iText, "|", 0)
$Id_Unique = $COMPTE[1]
$Nom = $COMPTE[2]
$Prenom = $COMPTE[3]
$Login = $COMPTE[4]
$Mdp = $COMPTE[5]
$FullName = $COMPTE[6]
Donc a partir de se concat il me sort le nom et le prenom directement et je n'ai qu'a mettre dans le net user
Run('NET USER ' & $Login & ' ' & $Mdp & ' /fullname:' & '"' & $FullName & '"')
et la ca fonctionne
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [R] Insérer le résultat d'une variable entre guillemets
Un _SQLite_QuerySingleRow serait plus simple.
Eviter l'usage des *Query + boucle(s) en règle générale.
Eviter l'usage des *Query + boucle(s) en règle générale.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
-
gabinhocity
- Niveau 2

- Messages : 18
- Enregistré le : jeu. 04 sept. 2014 09:45
- Status : Hors ligne
Re: [R] Insérer le résultat d'une variable entre guillemets
Merci du conseil


