首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个批处理命令的有关问题

2012-02-22 
一个批处理命令的问题我要写一个批处理脚本,先后调用2个exe,成功的就写入日志到do.txt,我是这样写的echo o

一个批处理命令的问题
我要写一个批处理脚本,先后调用2个exe,成功的就写入日志到do.txt,我是这样写的

echo off
echo 执行TestD
start E:\qinsps\01_trunk\Bin\TestD.exe
if errorlevel == 0 (
  echo TestD成功
  echo TestD[%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%]>> do.txt
)
echo 执行TestE
start E:\qinsps\01_trunk\Bin\TestE.exe
if errorlevel == 0 (
  echo TestE成功
  echo TestE[%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%]>> do.txt
)
pause

我想问2点, 2处判断if的地方是否有问题?为什么我换成if %errorlevel% == 0 的时候TestE里面的判断就不进去了?但是TestE确实被执行了
2 我怎么知道TestD已经执行完成了,TestE和TestD都是我用VS2010写的测试程序

[解决办法]
执行完成是指程序退出吗?
[解决办法]
试试加 /wait 参数
[解决办法]
errorlevel是固定的参数吧,表示你的程序的返回值的,加%是什么意思呢?没必要加这个%.
[解决办法]
testde.bat的内容
start call testd.bat
start call teste.bat

testd.bat的内容:
echo off
echo 执行TestD
E:\qinsps\01_trunk\Bin\TestD.exe
if errorlevel 0 (
echo TestD成功
echo TestD[%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%]>> do.txt
)

teste.bat的内容:
echo off
echo 执行TestE
E:\qinsps\01_trunk\Bin\TestE.exe
if errorlevel 0 (
echo TestE成功
echo TestE[%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%]>> do.txt
)

[解决办法]
是执行TestE的返回值,TestE如果是main程序正常退出返回0,那就是0了,如果TestE中错误返回-1的。那返回值就是-1.

热点排行