批處理檔案包含一系列dos命令,通常用於自動執行重複性的任務,例如週期性的自動化測試工作,就可以使用批處理檔案來執行定期的測試任務。這裡不是批處理的完整教程,只是對批處理檔案常用的命令做乙個總結,方便以後寫批處理的時候可以回來複習,給出的應用例子,是之前學習git伺服器定期執行自動測試任務時編寫的乙個批處理檔案,它自動編譯vs工程。
以下列舉一些非常常用的命令,並不是所有命令,這些命令將在後面的例子當中使用到。
1、echo命令
開啟回顯 或關閉回顯。
語法:echo [message]
如果沒有帶引數,則顯示當前echo命令的回顯設定:開啟狀態或關閉狀態
echo off :關閉命令提示符回顯
echo on:開啟命令提示符回顯
通常和@一起使用,@ :關閉本行命令回顯
2、rem命令
注釋命令,它類似於在c語言中的//,它並不會被執行,只是起乙個注釋的作用,只有在編輯批處理時才會被看到。
語法:rem [注釋內容]
rem 初始化源路徑
set sourcepath = ..
::也有rem命令功能,只是它總是不回顯注釋的內容,而當回顯開啟時rem會回顯注釋。
3、pause命令
暫停命令。
可以配合echo命令輸出提示資訊
echo 請按下任意鍵退出
pause >nul
4、call命令
call命令可以在批處理執行過程中呼叫另乙個批處理,當另乙個批處理執行完後,再繼續執行原來的批處理。
語法:call [drive:][path]filename [batch-parameters]
5、cd命令
切換目錄。
6、errorlever
每個命令執行結束,可以用這個命令列格式檢視返回碼。預設值為0,一般命令執行出錯會設 errorlevel 為1。
7、set命令
設定變數。類似 c語言的變數宣告。引用變數可在變數名前後加 % ,如 %變數名%
無引數的set命令:顯示目前所有可用的變數,包括系統變數和自定義的變數
系統變數可以直接引用,如:顯示系統盤碟符 echo %systemdrive%
顯示所有以p開頭的變數,要是乙個也沒有就設errorlevel=1,如:
set p
設定變數p,並賦值為 = 後面的字串,如:
set path=.. \config\
8、if命令
判斷命令,根據判斷條件執行後續命令,大致可以分為以下三個種類:
1)if 「引數」 == 「字串」 待執行的命令
2)if exist 檔名 待執行的命令
3)if errorlevel / if not errorlevel 數字,待執行的命令。
9、xcopy命令
目錄複製命令。複製指定的目錄和目錄下所有檔案連同目錄結構。
語法:xcopy source [destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [/n] [/o] [/x] [/exclude:filename1[+[filename2]][+[filename3]] [/z]
source:必需引數。指定要複製的檔案的位置和名稱。該引數必須包含驅動器或路徑。
destination:指定要複製的檔案的目標。該引數可以包含驅動器號和冒號、目錄名、檔名或者它們的組合。
/s:複製非空的目錄和子目錄。如果省略「/s」,只拷貝檔案,不拷貝子目錄。
/y:禁止提示確認要覆蓋已存在的目標檔案。
10、mkdir命令
mkdir命令用來建立指定的名稱的目錄,要求建立使用者在當前目錄具有許可權,並且指定的目錄名不能是當前目錄中已有的目錄。
11、goto命令
跳轉命令。程式指標跳轉到指定的標籤,從標籤後的第一條命令開始繼續執行批處理程式。標籤以單個冒號開始,緊接著乙個非冒號的標籤字串。使用方法見第三節的例子。
::更新標頭檔案和庫檔案
set srcheadpath=...\include\
set srclibpath=..\lib
set desheadpath=.\include\
set deslibpath=.\lib
xcopy %srcheadpath% %desheadpath% /s /y
xcopy %srclibpath%abc.dll %deslibpath% /y
@if "%vcdir%"=="" @goto _set_vcdir
@goto _set_vcdir_end
:_set_vcdir
@rem set vcdir
@set vcdir=%vs120comntools%..\..\vc
:_set_vcdir_den
@if "%vsinstalldir%"==""(
call "%vcdir%"\vcvarsall.bat
) else (
@echo current is vc env already
)@set vc_build_opt=release
msbuild helloword.sh /t:rebuild /p:configuration=%vc_build_opt%
@if %errorlevel% neq 0 exit /b %errorlevel%
學習要一步乙個腳印,原來花了很多精力學習的內容,應該把它記錄下來,免得後面需要重新用到,又得花費大量時間查詢資料。這篇博文的是對常用批處理命令的總結,並不全面,如果後續做別的模組開發,需要另外一些命令,這篇文章還會擴充套件新的命令。
這篇博文的另乙個目的是,記錄如何使用批處理來編譯vs工程,這是乙個非常有用的技術,應該記錄下來,以後還會用得上。
批處理常用命令總結
批處理 batch 也稱為批處理指令碼。顧名思義,批處理就是對某物件進行批量的處理。批處理檔案的擴充套件名為bat。目前比較常見 的批處理包含兩類 dos批處理和ps批處理。ps批處理是基於強大的編輯軟體photoshop的,用來批量處理的指令碼 而dos批處理則是基於dos命令的,用來自動地批量地...
Bat windows 批處理 常用命令
to make all bat files fullscreen reg add hkcu console v fullscreen t reg dword d 1 f to make all bat files not full screen reg add hkcu console v full...
使用批處理檔案 常用命令
echo call pause rem 是批處理檔案最常用的幾個命令,我們就從他們開始學起。echo 表示顯示此命令後的字元 echo off 表示在此語句後所有執行的命令都不顯示命令列本身 與echo off相象,但它是加在其它命令列的最前面,表示執行時不顯示命令列本身。call 呼叫另一條批處理...