2015-10-16 75 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