簡體   English   中英

使用Powershell從批處理文件更新XML文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM