Question
Comparer 2 chaine avec retour chariots
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 13 ans 7 mois #12781
par Gabriel
Comparer 2 chaine avec retour chariots a été créé par Gabriel
Bonjour
alors voila je recupere une chaine de l'AD qui contient plusieurs lignes (en l'occurrence l'entree streerAddress), elle apparait comme ca
[code:1]
$ChaineAD = (get-qaduser tonic8).streetAddress
PS C:\>$ChaineAD
place de l'étoile
Paris 08
France
[/code:1]
d'autre part je génére une chaine a partir d'une bdd qui contient plusieurs champs en une seule ligne (streetAddress n'accepte qu'une ligne)
[code:1]
$ChaineGe = \"place de l'étoile\" + \"`r`n\" + \"Paris 08\" + \"`r`n\" + \"France\"
PS C:\>$ChaineGe
\"place de l'étoile`r`nParis 08`r`nFrance\"
[/code:1]
Donc qunad je les compare les 2 chaines sont evidement differentes, la question est comment jouer la transformation pour que finalement $ChaineGe ressemble à $ChaineAD...
merci d'avance.
alors voila je recupere une chaine de l'AD qui contient plusieurs lignes (en l'occurrence l'entree streerAddress), elle apparait comme ca
[code:1]
$ChaineAD = (get-qaduser tonic8).streetAddress
PS C:\>$ChaineAD
place de l'étoile
Paris 08
France
[/code:1]
d'autre part je génére une chaine a partir d'une bdd qui contient plusieurs champs en une seule ligne (streetAddress n'accepte qu'une ligne)
[code:1]
$ChaineGe = \"place de l'étoile\" + \"`r`n\" + \"Paris 08\" + \"`r`n\" + \"France\"
PS C:\>$ChaineGe
\"place de l'étoile`r`nParis 08`r`nFrance\"
[/code:1]
Donc qunad je les compare les 2 chaines sont evidement differentes, la question est comment jouer la transformation pour que finalement $ChaineGe ressemble à $ChaineAD...
merci d'avance.
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 7 mois #12783
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Comparer 2 chaine avec retour chariots
Salut,
peux-tu nous communiquer le type du champ AD que tu interroges ?
peux-tu nous communiquer le type du champ AD que tu interroges ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 13 ans 7 mois #12786
par Gabriel
Réponse de Gabriel sur le sujet Re:Comparer 2 chaine avec retour chariots
Bonjour Laurent
il s'agit du champs streetAddress de type directoryString. Ce chmaps contrairement a proxyAddresses (qui est aussi un directoryString) n'accepte pas \"plusieurs ligne\".
proxyaddresses accepte plusieurs emails (1 par ligne)
streetAddress lui n'accepte qu'une seule ligne (mais contenant les caractere retour chariot et nouvelle ligne).
entre temps j'ai compris pourquoi ma comparaison est $False, lors de la generation de l'adresse pour comparaison j'ai mixé les \"'\" et les '\"'
[code:1]
$sCompteSTREETADDRESS = 'Desk`t: ' + $($oCompte.desk) + '`r`n'
$sCompteSTREETADDRESS += \"Office`t: \" + $($oCompte.officeName) + '`r`n'
$sCompteSTREETADDRESS += \"Floor`t: \" + $($oCompte.floorName) + '`r`n'
$sCompteSTREETADDRESS += \"Building`t: \" + $($oCompte.buildingName) + '`r`n'
$sCompteSTREETADDRESS += \"City`t: \" + $($oCompte.city) + '`r`n'
$sCompteSTREETADDRESS += \"Country`t: \" + $($oCompte.country)
[/code:1]
ce qui fait une string a comparer comme ceci
[code:1]
\"Desk`t: `r`nOffice : `r`nFloor : `r`n\"
[/code:1]
apres avoir mis des \" partout la comparaison se fait correctement.
il s'agit du champs streetAddress de type directoryString. Ce chmaps contrairement a proxyAddresses (qui est aussi un directoryString) n'accepte pas \"plusieurs ligne\".
proxyaddresses accepte plusieurs emails (1 par ligne)
streetAddress lui n'accepte qu'une seule ligne (mais contenant les caractere retour chariot et nouvelle ligne).
entre temps j'ai compris pourquoi ma comparaison est $False, lors de la generation de l'adresse pour comparaison j'ai mixé les \"'\" et les '\"'
[code:1]
$sCompteSTREETADDRESS = 'Desk`t: ' + $($oCompte.desk) + '`r`n'
$sCompteSTREETADDRESS += \"Office`t: \" + $($oCompte.officeName) + '`r`n'
$sCompteSTREETADDRESS += \"Floor`t: \" + $($oCompte.floorName) + '`r`n'
$sCompteSTREETADDRESS += \"Building`t: \" + $($oCompte.buildingName) + '`r`n'
$sCompteSTREETADDRESS += \"City`t: \" + $($oCompte.city) + '`r`n'
$sCompteSTREETADDRESS += \"Country`t: \" + $($oCompte.country)
[/code:1]
ce qui fait une string a comparer comme ceci
[code:1]
\"Desk`t: `r`nOffice : `r`nFloor : `r`n\"
[/code:1]
apres avoir mis des \" partout la comparaison se fait correctement.
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 13 ans 7 mois #12787
par Gabriel
Réponse de Gabriel sur le sujet Re:Comparer 2 chaine avec retour chariots
Bon maintenant j'ai un autre effet de bord que nous dirons cosmetique

Dans mon process si la string est differente je genere une commande que je met dans un fichier de script powershell pour l'executer plus tard
donc on avait avant
[code:1]
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk`t: `r`nOffice : 8989`r`nFloor : 13`r`nBuilding : rue du ahahah`r`nCity : hohoho`r`nCountry : FRANCE\";}
[/code:1]
[code:1]
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk :
Office : 8989
Floor : 13
Building : rue du ahahah
City : hohoho
Country : FRANCE\";}
[/code:1]
ce qui fonctionne mais genere un fichier absolument pourri a lire/relire
Dans mon process si la string est differente je genere une commande que je met dans un fichier de script powershell pour l'executer plus tard
donc on avait avant
[code:1]
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk`t: `r`nOffice : 8989`r`nFloor : 13`r`nBuilding : rue du ahahah`r`nCity : hohoho`r`nCountry : FRANCE\";}
[/code:1]
[code:1]
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk :
Office : 8989
Floor : 13
Building : rue du ahahah
City : hohoho
Country : FRANCE\";}
[/code:1]
ce qui fonctionne mais genere un fichier absolument pourri a lire/relire
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 13 ans 7 mois #12788
par Gabriel

A pus qu'a reprendre ma fonction et faire l'inverse, c'est a dire recuperer les infos dans l'AD et la convertire comme il faut
[code:1]
(get-qaduser tonic8).streetaddress -replace \"`r`n\",'`r`n'
[/code:1]
Réponse de Gabriel sur le sujet Re:Comparer 2 chaine avec retour chariots
A pus qu'a reprendre ma fonction et faire l'inverse, c'est a dire recuperer les infos dans l'AD et la convertire comme il faut
[code:1]
(get-qaduser tonic8).streetaddress -replace \"`r`n\",'`r`n'
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 7 mois #12789
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Comparer 2 chaine avec retour chariots
J'ai un peu de mal à comprendre ton soucis, de ce que j'ai compris, une fois que tu nous as parlé de génération de commandes, je te propose l'approche suivante :
[code:1]
$Cmd=@'
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk`t: `r`nOffice : 8989`r`nFloor : 13`r`nBuilding : rue du ahahah`r`nCity : hohoho`r`nCountry : FRANCE\";}
'@
# pas de substitution des caractères de contrôle
1..3|% { $CMD}
# Substitution
des caractères de contrôle
1..3|% { $ExecutionContext.InvokeCommand.ExpandString($CMD)}
[/code:1]
Pas sûr que je sois en phase
<br><br>Message édité par: Laurent Dardenne, à: 28/09/12 09:36
[code:1]
$Cmd=@'
set-qaduser tonic8 -ObjectAttributes @{streetAddress=\"Desk`t: `r`nOffice : 8989`r`nFloor : 13`r`nBuilding : rue du ahahah`r`nCity : hohoho`r`nCountry : FRANCE\";}
'@
# pas de substitution des caractères de contrôle
1..3|% { $CMD}
# Substitution
des caractères de contrôle
1..3|% { $ExecutionContext.InvokeCommand.ExpandString($CMD)}
[/code:1]
Pas sûr que je sois en phase
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.040 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Comparer 2 chaine avec retour chariots