使用来自批处理文件

时间:2015-10-08 20:13:39

标签: xml powershell batch-file

我想使用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>

错误消息显示它缺少End括号,并希望我可以解决此问题的所有帮助或建议。

2 个答案:

答案 0 :(得分:1)

要扩展PetSerAl的注释,-Command之后的参数是一个由双引号括起来的字符串。双引号字符串本身包含双引号字符。因此,您需要在文件名周围的双引号之前放置一个反斜杠,因此命令解析器知道这些双引号字符实际上是字符串数据的一部分,而不是字符串分隔符。

powershell -Command "& {$xml = [xml](Get-Content "

当命令解析器看到你的原始命令时,它认为Get-Content之后的双引号是命令的结束。这就是为什么它说它无法找到一个右括号。它只看到Get-Content命令之前的左括号。

答案 1 :(得分:0)

感谢您的答案,经过一些测试,我发现我可以使用单个配额,现在可以使用了。

class ImplementsRunnable implements Runnable {
public void run() {
 System.out.println("ImplementsRunnable");
 }
 } 
public class DemoRunnable {
  public static void main(String args[]) throws Exception {
             ImplementsRunnable rc = new ImplementsRunnable();
             Thread t1 = new Thread(rc); 
             t1.start();
  /*here with the help of Constructor of Thread Class we call start method which is not in ImplementsRunnable*/
}
}

由于