2011-10-07 4 views
0

xmlstarlet을 사용하여 새 요소를 삽입하려고하지만 명령을 실행하면 삽입 할 XML 파일이 나열됩니다. 어떤 제안이라도 좋을 것입니다.xmlstarlet 편집 삽입 구문

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> 

답변

2

당신의 명령을 삽입 할 때 키에 대한 전체 경로를 사용해야합니다, 조금 꺼져 : 직접 당신을 OLDFILE을 변경하려는 경우,이를 새에 편집 된 XML을 넣어 것입니다

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 

--inplace 또는 -L 옵션을 사용할 수 있습니다.

xml ed --net --inplace^
    ... 
관련 문제