Win批處理命令基本操作,win批處理基本操作
介紹批處理命令也有原因的,是由於在使用jenkins處理整合的時候,有些dll需要編譯後拷貝到Web層的,否則反射是無法執行的。好了,切入正題
批次檔是無格式的文字檔。包括一條或多條。副檔名為.bat或cmd。在命令提示下鍵入批次檔的名稱,或者雙擊該批次檔,系統就會調用Cmd.exe按照該檔案中各個命令出現的順序來逐個運行它們。
下面簡單介紹基本的文法使用
1echo命令
開啟或關閉請求回顯功能,顯示當前設定
echo [{on|off}][message]Sample:@echo off / echo hello world
2.@ 命令
表示不顯示@後面的命令
不能讓對方看到你使用的命令啦。
Sample:@echo off@echo Nowinitializing the program,please wait a minite...
3goto命令
指定跳轉到標籤,找到標籤後,程式將處理從下一行開始的命令。
文法:goto label (label是參數,指定所要轉向的批次程式中的行。)
Sample:if {%1}=={} gotonoparmsif{%2}=={} goto noparms(如果這裡的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋。)@Rem check parametersif null show usage:noparmsecho Usage:monitor.bat ServerIP PortNumbergoto end
4.Rem 命令
注釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀和你自己日後修改。
Rem Message
Sample:@Rem Here is the descr1ption.
5.Pause 命令
運行 Pause 命令時,將顯示下面的訊息:
Press any key tocontinue . . .
該命令有助於顯示想要的結果
Sample:@echo off:begincopya:*.* d:backecho Please put a newdisk into driver Apausegoto begin
在這個例子中,磁碟機 A 中磁碟上的所有檔案均複製到d:back中。
6.If命令
if表示將判斷是否符合規定的條件,從而決定執行不同的命令。有三種格式:
6.1、if "參數"== "字串" 待執行的命令
參數如果等於指定的字串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)
如if"%1"=="a" format a:
if {%1}=={} gotonoparms
if {%2}=={} gotonoparms
6.2、if exist檔案名稱 待執行的命令
如果有指定的檔案,則條件成立,運行命令,否則運行下一句。
如if existconfig.sys edit config.sys
7for命令
命令是一個比較複雜的命令,主要用於參數在指定的範圍內迴圈執行命令
在批次檔中使用 FOR 命令時,指定變數請使用%%variable
整體的文法是:
for{vaiable|%%variable}in (set) do command[CommandLineOptions]
- %variable指定一個單一字母可替換的參數。
- (set) 指定一個或一組檔案。可以使用萬用字元。
- command指定對每個檔案執行的命令。
- command-parameters為特定命令指定參數或命令列開關。
對應的格式也可以是
for參數 %%變數名 in ("檔案或萬用字元")do("操作")
以上是兩種變形的寫法,但表達的都是相同的意思
參數 for有4個參數分別是/d /r /l /f
- /d 僅為目錄
- /r 遞迴
- /L迭代數值範圍(小寫l)
- /f 迭代檔案解析
我們來個遞迴的寫法
在一個目錄中搜尋某個檔案拷貝到另一個目錄中
set jbosspath=E:\Jenkins_Publish\ExamSystem_NET\ExamSystem_Service\binset projwhich=ExamSystemset objectbll=%Jenkins_Net%\%projwhich%\ITOO.Exam.BLL\obj\Releasefor /r"%objectbll%" %%i in (ITOO*.dll) do (echo 正在複製%%i到%jbosspath%\copy /y"%%i" %jbosspath%\<p>)</p>
小結:
以上是對bat指令碼的基本學習和認識,基本的文法結構和命令提示字元,也是對現學習的最基本的記錄,稍作整理吧。