[英]Update xml file with powershell from a batchfile
我想使用powershell命令从批处理文件更新xml文件,并认为我已经关闭,但是有语法问题。
这是批处理文件中的powershell命令:
powershell -Command "& {$xml = [xml](Get-Content "C:\Temp\Test\configuration.xml"); $xml.root.settings.installingUser.value = 'NewID'; $xml.Save("C:\Temp\Test\configuration_ny.xml")}"
configuration.xml上的示例:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<test engine="2011.0.0" />
<settings>
<installDir value="C:\Program Files\App\Path" />
<installingUser value="InstallID" />
</settings>
</root>
错误消息说它缺少结束括号,将不胜感激我能解决的所有帮助或建议。
为了扩展PetSerAl的注释,-Command之后的参数是一个用双引号引起来的字符串。 该双引号字符串本身包含双引号字符。 因此,您需要在文件名的双引号之前加上反斜杠,以便命令解析器知道这些双引号字符实际上是字符串数据的一部分,而不是字符串定界符。
powershell -Command "& {$xml = [xml](Get-Content "
当命令解析器看到您的原始命令时,它认为Get-Content之后的双引号是命令的结尾。 这就是为什么它说找不到圆括号。 在Get-Content命令之前,它仅看到左括号。
感谢您的回答,经过一些测试,我发现我可以使用单个配额,并且现在可以使用了。
powershell -Command "& {$xml = [xml](Get-Content '%InstConfXML%'); $xml.root.settings.installingUser.value = '%InstUsrXML%'; $xml.Save('%InstConfXML%')}"
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.