最近項目需要用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
bat延時參考文章:http://www.cnnkl.cn/Article/webtech/383/2008/20080120121.html