私は編集しようとしているタスクスケジューラのxmlファイルを持っています。バッチファイルによるxmlstarletの更新が更新/動作しない
<?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'は何をしますか? – Cyrus
いくつかの 'xmlstartlet'には、元のファイルへの変更を保存する' --inplace'オプションがあります。しかし、それはなぜ(例えば)私のテストで '.../URI'の値がCGL-FakeTitleに変わらないのかを説明するものではありません。これらのどれも '-r'や' -u'で動作しませんか?誰もが "私たちの"考えに誤りを見つけますか?すべてに感謝と幸運。 – shellter
そして上記のリンクに私のコメントを参照してください。 'xml ... file.xml> file.xml'を使わないでください! – shellter