【发布时间】:2017-12-18 13:56:37
【问题描述】:
我有我正在尝试编辑的任务计划程序 xml 文件。
<?xml version="1.0" encoding="UTF-16"?>
<Task xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task" version="1.4">
<RegistrationInfo>
<Date>2017-03-12T16:40:52.4111579</Date>
<Author>Kevin</Author>
<Description>Runs Batch File For Counter</Description>
<URI>THETASKTITLEGOESHERE</URI>
</RegistrationInfo>
<Actions Context="Author">
<Exec>
<Command>"ACTIONGOESHERE"</Command>
</Exec>
</Actions>
</Task>
这是我在批处理文件中的内容。
@echo off
pushd %~dp0
xml ed -inplace -r "/Task/RegistrationInfo/Author" -v CGL XMLTEST1.xml
xml ed -inplace -r "/Task/RegistrationInfo/URI" -v CGL-FakeTitle XMLTEST1.xml
xml ed -inplace -r "/Task/Actions/Exec/Command" -v "C:\Batch\Counter.bat" XMLTEST1.xml
pause
我已经尝试过这里的建议; xmlstarlet update value nothing happens
在末尾添加“ > XMLTEST1output.xml”会生成一个空文件。 任何的意见都将会有帮助。谢谢!
【问题讨论】:
-
选项
-inplace有什么作用? -
一些
xmlstartlets 有一个--inplace选项,可以将更改保存到原始文件。但这并不能解释为什么(例如).../URI值在我的测试中不会更改为 CGL-FakeTitle。这些都不适用于-r或-u吗?有人发现“我们”思维中的错误吗?谢谢,祝大家好运。 -
看看我对上面链接的评论。不要使用
xml ... file.xml > file.xml! -
我尝试了两种方法,但无法使其正常工作。我宁愿不使用 --inplace 并将其作为带有 output.xml 的模板,之后我可以更改名称。
标签: batch-file xml-namespaces xmlstarlet