0

xmlstarlet を使用して新しい要素を挿入しようとしていますが、コマンドを実行すると、挿入しようとしている xml ファイルが一覧表示されます。どんな提案も素晴らしいでしょう。

xml ed -s /chkSys/machine/registry -t elem -n key -v "" -i /registry/key -t attr -n value -v "'C:\Program Files\Microsoft SQL Server'" -v path "HKLM\software\symantec\Symantec Endpoint Protection\AV\Exclusions\ScanningEngines" --net \\server3\e$\temp\chksys\chksys.xml

##Old##
<?xml version="1.0" encoding="utf-8"?>
<chksys>
    <machine>
        <registry>

       </registry>
    </machine>
</chksys>

##New##
<?xml version="1.0" encoding="utf-8"?>
 <chksys>
    <machine>
       <registry>
           <key value="'C:\Program Files\Microsoft SQL Server'" path "HKLM\software\symantec\Symantec Endpoint Protection\AV\Exclusions\ScanningEngines\Directory\Admin\1075182566\DirectoryName"/>
       </registry>
    </machine>
 </chksys>
4

1 に答える 1

2

あなたのコマンドは少しずれています。挿入するときは、キーへのフルパスを使用する必要があります。

xml ed --net ^
    -s /chksys/machine/registry -t elem -n key -v "" ^
    -i /chksys/machine/registry/key -t attr -n value ^
      -v "'C:\Program Files\Microsoft SQL Server'" ^
    -i /chksys/machine/registry/key -t attr -n path ^
      -v "HKLM\software\symantec\Symantec Endpoint Protection\AV\Exclusions\ScanningEngines" ^
    OLDFILE > NEWFILE

これにより、編集された xml が NEWFILE に配置されます。OLDFILE を直接変更する場合は、--inplace または -L オプションを使用できます。

xml ed --net --inplace ^
    ...
于 2011-10-08T14:08:44.370 に答える