2013-08-26 5 views
-1

Iwant de mettre à jour ces deux domaines (client et de l'environnement) en utilisant la fonction de script regexRemplacement terrain à l'aide powershell

<authentication mode="Forms"> 
    <forms name="AIR.client.environment.value" loginUrl="Login.aspx" protection="All" timeout="30" /> 
</authentication> 

la fonction que j'ai

$regex_clientname = new-object System.Text.RegularExpressions.Regex("client=.*", [System.Text.RegularExpressions.RegexOptions]::IgnoreCase); 
$regex_enviorenment = new-object System.Text.RegularExpressions.Regex("environment=.*", [System.Text.RegularExpressions.RegexOptions]::IgnoreCase); 

$root.SelectSingleNode("//authentication/forms/@name")."#text"=$regex_enviorenment.Replace($regex_clientname.Replace($root.SelectSingleNode("//authentication/forms/@name")."#text", $CLIENT),$ENV); 

mais il n'est pas mise à jour .. i besoin d'aide

+0

Je ne vois toujours pas de pertinence pour C++ !! –

Répondre

0

Hmm, pas sûr comment votre lecture dans le fichier XML, mais essayez ceci:

$nodes = $root | Select-Xml '//authentication/forms/@name' 
$nodes | Foreach { $_.Node.Value = ($_.Node.Value -replace '(.*?)client(.*)',"`$1${CLIENT}`$2") -replace '(.*?)environment(.*)',"`$1${ENV}`$2"} 
$root.Save('path') 

Notez que pour conserver les modifications du fichier XML, vous devez appeler Save() sur l'objet document xml.

+0

$ CLIENT et $ ENV sont les variables d'entrée. mais je ne sais pas comment convertir votre script en mines. – user2708556

Questions connexes