bat操作可执行文件
最近项目需要用bat来执行一些程序 ,以前对bat的语法不熟悉,借这个机会学习了一下bat的语法。其实bat文件的语法不是很难,只要熟悉一下几个基本的命令,大部分都能用它们来解决实际问题。本人用到的命令有:
echo:显示字符
@:后台执行命令
start /w:等待某个命令执行完毕
if exists 文件:判断文件是否存在
if errorlevel 1 goto fail:判断返回结果值
rem:注释
注意:
1。如果执行自解压文件需要注意它的目标路径,要么在制作自解压文件时指定的目标路径,否则它会解压到当前路径下(可能不是你想要的路径下)。本人被这个问题困扰了好几个小时(没有指定目标路径,结果不知道解压到什么地方去了)。
2。执行应用程序时,如果应用程序需要一些其它的配置文件并且应用程序调用它们用的是相对路径,那么最好能进入相应的目录,再执行应用程序
3。if errorlevel 1的判断条件,它不是相当于 if errorlevel == 1 ,而是相当于 if errorlevel <= 1,网上大部分资料都说应该按返回值从小到大来判断,实际上它恰恰相反。
示例:
@echo off
rem this is a upgrade test
echo start upgrade
rem 进入相应目录
cd %ITBOSSAGENT_HOME%/upgrade/
echo install.exe
rem 执行自解压程序
%ITBOSSAGENT_HOME%/upgrade/install.exe
echo DataTrans.exe
rem 暂停6秒
@ping 127.0.0.1 -n 6 > nul l
rem 执行应用程序
%ITBOSSAGENT_HOME%/upgrade/DataTrans.exe
rem 判断应用程序的返回结果
if errorlevel 1 goto fail
if errorlevel 0 goto succ
:fail
echo upgrade fail
rem 生成日志文件
echo upgrade fail >> %ITBOSSAGENT_HOME%/upgrade/test.log
goto end
:succ
echo upgrade succ
echo upgrade succ >> %ITBOSSAGENT_HOME%/upgrade/test.log
goto end
:end
rem 判断日志文件是否存在
if exist %ITBOSSAGENT_HOME%/upgrade/logfile.txt echo file exists
echo upgrade over