如何将当前的批处理转换为在单独的目录中处理许多xml文件?我当前的批处理文件仅处理1个具有特定名称的文件。如何将名称设为变量?
我有一个包含多个XML文件的目录。我需要将一个批处理文件转到该目录并获取一个XML文件。它运行一个可执行文件,并将文件名传递给它。可执行文件返回错误代码,然后根据返回的代码删除文件(如果成功,则将文件删除(错误级别等于0),错误1-7-将其复制到BAD
目录,并且代码8和9离开文件文件,请稍后再试。
现在,我只有一个文件,该文件始终被命名为相同文件,并且位于不同的目录中。我使用批处理文件之外的专有脚本语言来复制和删除文件。
这是我们今天运行的ACTUAL批处理文件(对还是错)
path=c:\14828\TDM
cd c:\14828\TDM
echo
UploadXmlTestResults.exe C:\14828\TDM\TDM_XML_FILE.xml
exit %errorlevel%
答案 0 :(得分:1)
您可以通过几种方法来处理错误级别(请参见if /?
)
在您的用例中,传统的if errorlevel #
(表示检查或更大的检查)是最好的。
@Echo off
pushd "c:\14828\TDM" || (Echo couldn't find path&pause&goto :eof)
set BadDir="X:\path\to\bad\"
for %%A in (*.xml) Do Call :Upload "%%~fA"
Echo done
pause
popd
Goto :Eof
:Upload
UploadXmlTestResults.exe %1
if errorlevel 8 Exit /B
if errorlevel 1 Copy %1 %BadDir%