Question Remplacer du texte contenant des guillemets
- maycry
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 119
- Remerciements reçus 0
il y a 13 ans 2 mois #8645
par maycry
Remplacer du texte contenant des guillemets a été créé par maycry
Coucou,
Voila je veux mettre à jour mon script ^^ mais je suis bloquer lorsque je dois remplacer du texte contenant des guillemets
Exemple typique !! alors je sais que normalement si l'ont met 2 guillemets ca passe.
d'ailleurs il arrive à lire mais pas à remplacer, et je suis obliger d'utliser les double guillemet sinon le code javascript ne s'exécute pas
[code:1]$t = \"<a href=`\"javascript:animatedcollapse.toggle('toggle0')`\"><a href=`\"javascript:animatedcollapse.show('toggle0')`\">Show</a></a> </th>\"
gc c:\test.log | ForEach-Object {$_ -replace $t,\"reosj<u>\"\"javascript(dkjdkjkd)\"\"dfijfjif\"} | Set-Content c:\test2.log
gc c:\test.log | Where-Object {$_ -eq $t }[/code:1]
Voila je veux mettre à jour mon script ^^ mais je suis bloquer lorsque je dois remplacer du texte contenant des guillemets
Exemple typique !! alors je sais que normalement si l'ont met 2 guillemets ca passe.
d'ailleurs il arrive à lire mais pas à remplacer, et je suis obliger d'utliser les double guillemet sinon le code javascript ne s'exécute pas
[code:1]$t = \"<a href=`\"javascript:animatedcollapse.toggle('toggle0')`\"><a href=`\"javascript:animatedcollapse.show('toggle0')`\">Show</a></a> </th>\"
gc c:\test.log | ForEach-Object {$_ -replace $t,\"reosj<u>\"\"javascript(dkjdkjkd)\"\"dfijfjif\"} | Set-Content c:\test2.log
gc c:\test.log | Where-Object {$_ -eq $t }[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 13 ans 2 mois #8650
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Remplacer du texte contenant des guillemets
Je n'ai pas bien compris quelle forme la chaîne est censée avoir une fois le remplacement terminé. Tu peux donner un exemple de texte avant et après le remplacement ?
D'une manière générale, quand on veut citer des guillemets doubles dans une chaîne, on délimite la chaîne avec des guillemets simples. Ca marche même avec -replace :
[code:1]
PS> $msg = 'Le monsieur te dit \"m...\"'
PS> $mot = '\"m...\"'
PS> $msg -replace $mot,'\"zut\"'
Le monsieur te dit \"zut\"
[/code:1]
Je dois avoir un souci avec la politesse en ce moment, mes exemples tournent tous autour de ce thème...
D'une manière générale, quand on veut citer des guillemets doubles dans une chaîne, on délimite la chaîne avec des guillemets simples. Ca marche même avec -replace :
[code:1]
PS> $msg = 'Le monsieur te dit \"m...\"'
PS> $mot = '\"m...\"'
PS> $msg -replace $mot,'\"zut\"'
Le monsieur te dit \"zut\"
[/code:1]
Je dois avoir un souci avec la politesse en ce moment, mes exemples tournent tous autour de ce thème...
Connexion ou Créer un compte pour participer à la conversation.
- maycry
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 119
- Remerciements reçus 0
il y a 13 ans 2 mois #8659
par maycry
Réponse de maycry sur le sujet Re:Remplacer du texte contenant des guillemets
Exemple: simple:
Ma chaîne est composé de plusieurs guillemet dans mon code HTML
Si je veux remplacer le \"100\" ou toute la chaine par la même, cela ne fonctionne pas
[code:1] $msg = '<th width=\"100%\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----'
$mot = '<th width=\"100%\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----'
$msg -replace '\"100\"','zut-' [/code:1]
Ma chaîne est composé de plusieurs guillemet dans mon code HTML
Si je veux remplacer le \"100\" ou toute la chaine par la même, cela ne fonctionne pas
[code:1] $msg = '<th width=\"100%\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----'
$mot = '<th width=\"100%\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----'
$msg -replace '\"100\"','zut-' [/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 13 ans 2 mois #8669
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Remplacer du texte contenant des guillemets
Quelque chose de vraiment simple doit m'échapper, parce que le remplacement d'un texte entre guillemets marche nickel chez moi :
[code:1]
PS> $msg = '<th width=\"100%\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----'
# remplacement du texte '100%' entre guillemets par '1080' entre guillemets
PS> $msg -replace '\"100%\"','\"1080\"'
<th width=\"1080\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----
[/code:1]<br><br>Message édité par: janel, à: 1/02/11 16:52
[code:1]
PS> $msg = '<th width=\"100%\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----'
# remplacement du texte '100%' entre guillemets par '1080' entre guillemets
PS> $msg -replace '\"100%\"','\"1080\"'
<th width=\"1080\"><input class=\"button\" onClick=\"javascript:animatedcollapse.toggle(\"toggle3\"«»)\"----
[/code:1]<br><br>Message édité par: janel, à: 1/02/11 16:52
Connexion ou Créer un compte pour participer à la conversation.
- maycry
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 119
- Remerciements reçus 0
il y a 13 ans 2 mois #8673
par maycry
Réponse de maycry sur le sujet Re:Remplacer du texte contenant des guillemets
Enfait aprés plusieurs texte, c'est lorsque qu'il y'a plusieurs \"\" que notre ami powershell ne sait pas le retrouver, donc il ne remplace rien
Bref je passe par une autre solution qui dans mon cas fonctionne, ( car je connais la ligne entiére)
je fais une recherche sur mon ma ligne,je la supprime, et je la récré et j'envoi vers le fichier ou un nouveau.
Voila Merci !!!
[code:1] $msg = gc c:\test.log
$if =($msg | Where-Object {$_ -eq \"<a href=`\"javascript:animatedcollapse.toggle('toggle0')`\">Show</a></a></th>\"}).readcount
$if
$msg[$if-1]=$null
$replace = $msg[$if-1]=\"<td= bgcolor='#ffffff'>tessstt</td><a href=`\"javascript:animatedcollapse.toggle('toggle0')`\">Show</a></a></th>\"
$msg | Set-Content c:\test.log[/code:1]<br><br>Message édité par: chris, à: 1/02/11 23:02
Bref je passe par une autre solution qui dans mon cas fonctionne, ( car je connais la ligne entiére)
je fais une recherche sur mon ma ligne,je la supprime, et je la récré et j'envoi vers le fichier ou un nouveau.
Voila Merci !!!
[code:1] $msg = gc c:\test.log
$if =($msg | Where-Object {$_ -eq \"<a href=`\"javascript:animatedcollapse.toggle('toggle0')`\">Show</a></a></th>\"}).readcount
$if
$msg[$if-1]=$null
$replace = $msg[$if-1]=\"<td= bgcolor='#ffffff'>tessstt</td><a href=`\"javascript:animatedcollapse.toggle('toggle0')`\">Show</a></a></th>\"
$msg | Set-Content c:\test.log[/code:1]<br><br>Message édité par: chris, à: 1/02/11 23:02
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 13 ans 2 mois #8677
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Remplacer du texte contenant des guillemets
C'est super que tu aies trouvé une solution à ton problème.
Juste pour ma gouverne, j'aimerais quand même comprendre ce qui ne marchait pas, parce que même avec des double-guillemets dans un texte, PowerShell s'en débrouille plutôt bien il me semble :
[code:1]
PS> $msg = 'Mot entre \"\"deux guillemets\"\" ?'
PS> $msg
Mot entre \"\"deux guillemets\"\" ?
PS> $msg -replace '\"\"','\"'
Mot entre \"deux guillemets\" ?
[/code:1]
Juste pour ma gouverne, j'aimerais quand même comprendre ce qui ne marchait pas, parce que même avec des double-guillemets dans un texte, PowerShell s'en débrouille plutôt bien il me semble :
[code:1]
PS> $msg = 'Mot entre \"\"deux guillemets\"\" ?'
PS> $msg
Mot entre \"\"deux guillemets\"\" ?
PS> $msg -replace '\"\"','\"'
Mot entre \"deux guillemets\" ?
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.090 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Remplacer du texte contenant des guillemets