Question Remplacer du texte contenant des guillemets

Plus d'informations
il y a 11 ans 7 mois #8645 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]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #8650 par Jacques Barathon
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... :P

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #8659 par maycry
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]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #8669 par Jacques Barathon
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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 7 mois #8673 par maycry
Enfait aprés plusieurs texte, c'est lorsque qu'il y'a plusieurs \&quot;\&quot; 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 \&quot;&lt;a href=`\&quot;javascript:animatedcollapse.toggle('toggle0')`\&quot;&gt;Show&lt;/a&gt;&lt;/a&gt;&lt;/th&gt;\&quot;}).readcount
$if

$msg[$if-1]=$null
$replace = $msg[$if-1]=\&quot;&lt;td= bgcolor='#ffffff'&gt;tessstt&lt;/td&gt;&lt;a href=`\&quot;javascript:animatedcollapse.toggle('toggle0')`\&quot;&gt;Show&lt;/a&gt;&lt;/a&gt;&lt;/th&gt;\&quot;




$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.

Plus d'informations
il y a 11 ans 7 mois #8677 par Jacques Barathon
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&gt; $msg = 'Mot entre \&quot;\&quot;deux guillemets\&quot;\&quot; ?'
PS&gt; $msg
Mot entre \&quot;\&quot;deux guillemets\&quot;\&quot; ?
PS&gt; $msg -replace '\&quot;\&quot;','\&quot;'
Mot entre \&quot;deux guillemets\&quot; ?
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.071 secondes
Propulsé par Kunena