Utiliser powershell ForEach-Object de match et de le remplacer chaîne avec la regex

Je utiliser le dessous de pipeline pour lire un fichier et de le remplacer une ligne et l'enregistrer dans un autre fichier, mais a constaté que la chaîne de caractères dans le fichier cible n'est pas remplacé, c'est toujours l'ancien.

ligne d'origine est : nom-1a2b3c4d

nouvelle ligne devrait être: nom-6a5e4r3h

(Get-Content "test1.xml") | ForEach-Object {$_ -replace '^name-.*$', "name-6a5e4r3h"} | Set-Content "test2.xml"

Quelque chose qui manque?

Votre code fonctionne parfaitement sur PS2.0 et PS3.0
Avez-vous essayé d'utiliser d'analyse XML? Ne sais pas si c'est applicable, mais si vous savez dans quel élément de l'XML, vous devez remplacer votre chaîne, qui peut être plus "propre"

OriginalL'auteur user1201530 | 2013-03-08