我一直在想方设法使用xslt批量转换目录中的文件。我尝试了xml扳手和其他一些软件,但是我需要将所有这些放在脚本或批处理中,以便我可以根据需要运行。批量转换xslt xml
我一直在使用如下raptorxml命令行开始了一个批处理文件:
C:\Program Files (x86)\Altova\RaptorXMLServer2013\bin>RaptorXML.exe xslt --input=c:\data\test1.xml --output=c:\data\output1.xml c:\data\test.xsl
file:///c:/data/test1.xml: result="OK" xslt-output-files="file:///c:/data/output1.xml"
当我尝试下面把这个批处理文件,我不明白这是怎么回事的事情 - 不能确定脚本是否运行或出现任何错误。试图将ECHO置于中间,但也没有帮助。我尝试使用> log.log将输出重定向到日志,但这只会得到文件中每行的回显。我无法在外观中看到变量的值,或者如何调用raptorxml形成。任何提示或指针都会有帮助 - 谢谢。
这里是我的批处理文件:我运行它batchxform.bat C:\data\ip
cls
call :treeProcess
goto :eof
:treeProcess
cd %1
for %%f in (*.xml) do (
RaptorXML.exe xslt --input=%%f --output=c:\data\op\%%~nf.xml c:\data\test.xsl
)
for /D %%d in (%1) do (
cd %%d
call :treeProcess
cd ..
)
exit /b
初始答案/文章后,我加入了更多的逻辑从另一个调用脚本从输入迪尔斯的所有子目录处理文件。想到这里共享该脚本:
ECHO OFF
set _xform=C:\Users\gkalra\Documents\work\Annotation\code\batchxform.cmd
rem call _xform %1
FOR /R %1 %%G in (.) DO (
Pushd %%G
Echo now in %%G
rem dir /b "%%G/*.xml"
call "%_xform%" %%G
Popd
)
Echo "back home"
对于一个你应该使用'pushd'和'popd',而不是'cd' – Monacraft
是的的确是一..意识到迟到。 –