使用powershell脚本在文件中编辑和保存更改

使用powershell脚本在文件中编辑和保存更改,powershell,Powershell,请告诉我如何使用powershell脚本编辑xml文件中的变量内容 <application> <name>My Application</name> <platforms> <platform>android</platform> <icon gap:density="ld" src="/icon-1.png" /> <icon gap:density="md" src="/ico

请告诉我如何使用powershell脚本编辑xml文件中的变量内容

<application>
<name>My Application</name>
<platforms>
    <platform>android</platform>
    <icon gap:density="ld" src="/icon-1.png" />
    <icon gap:density="md" src="/icon-2.png" />
</platforms>
</application>
Tks 谢谢你的帮助

$newitem = $xml.CreateElement("Value")
$newitem.set_InnerXML("111")            
$xml.Items.ReplaceChild($newitem, $_)

我想是这样的。。我并不是为了偏离正轨而尝试的

请使用基思·希尔的答案,我只是把我的答案留在这里作为参考。他是对的,最好通过XMLAPI修改它。我从不使用XML,我不熟悉它,所以我甚至没有想到它

我得问问,你有没有试过做这件事?你在寻找答案吗?这是非常基本的东西,只要在谷歌上花一两分钟,你可能就会得到答案

(Get-Content "C:\Source\SomeFile.XML") -replace "My Application","Shiny New App"|Set-Content "C:\Source\SomeFile.XML"
或者,如果你想改变一些不太具体的东西,比如平台标签上的“android”一词,你可以只包含标签,以确保它得到正确的东西。(本例中使用了一些速记)

(GC“C:\Source\SomeFile.XML”)-替换“android”、“tacos”| SC“C:\Source\SomeFile.XML”
说真的,至少在你来要求别人用勺子填鸭式回答之前,试着帮助你自己。我刚刚在谷歌上搜索了“powershell替换文件中的文本”,第一个链接就会给你答案

编辑:
如果不知道您正在寻找什么,并且仅仅基于off标记,您将需要执行RegEx(正则表达式)搜索


(GC“C:\Source\SomeFile.XML”)-replace“(?最好使用XML Api编辑XML文档,而不是使用文本搜索/替换。请尝试以下操作:

[xml]$xml = Get-Content foo.xml
$xml.application.name = "new name"
$xml.Save("$pwd\foo.xml")

你尝试过什么?在这里展示一些努力-不要只是进来让Stack Overflow为你做这件事。这里的问题是,我想编辑标签之间的内容,而不知道它,只是基于阶段的名称,这是否可以使用powershell?例如,如果我想编辑android,我只想指定我想编辑platform.tks
(GC "C:\Source\SomeFile.XML") -replace "<platform>android</platform>","<platform>tacos</platform>"|SC "C:\Source\SomeFile.XML"
(GC "C:\Source\SomeFile.XML") -replace "(?<=`<platform`>).*?(?=`</platform`>)", 'New Platform'
[xml]$xml = Get-Content foo.xml
$xml.application.name = "new name"
$xml.Save("$pwd\foo.xml")