2015-10-16 78 views
0

我在一行中有很多XML文件的子目錄。要漂亮地打印它們,我使用xmllint,它完美地工作。所以我想編寫一個批處理腳本,它在所有子目錄中執行xmllint.exe。這是我到目前爲止有:用XMLLINT.exe批量打印XML失敗

setlocal enabledelayedexpansion 

for /D /r %%d in (./*) do (
    pushd %%d 

    for %%x in (*.xml) do (
     ren %%x %%~nx.old 
     ::Get the filename, without the .old-extension 
     set "filename=%%~nx" 
     set "extension=.xml"  
     ::Concatenate filename and extension 
     set "finalname=!filename!!extension!" 
     %~dp0\xmllint.exe %%x >> !finalname! 

     del %%~nx.old 
    ) 
    popd 
) 

但我有兩個問題:

1)當我執行此我得到一個錯誤:異常信息:System.IO.IOException:該進程無法訪問該文件,因爲另一個進程正在使用它。

但我檢查了我有一切關閉。 2.)當我用單個文件測試它時,我注意到,一旦我有一個文件,這是有點損壞(例如錯過一個閉合標籤),那麼它也給我一個錯誤,它可以' t格式化它,因爲標籤丟失。

是否有一些選擇xmllint,抑制它漂亮的打印它呢?

謝謝!

回答

1

在您的代碼中,路徑格式不正確。你也必須引用每個xmlint參數

​​
+0

謝謝!這樣可行! – user5417542