我想使用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括号,并希望我可以解决此问题的所有帮助或建议。
答案 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*/
}
}
由于