[英]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.