bat - 知識

腳本之家的介紹

基本命令

echo

  • echo我們可以理解成程序中的輸出,和我們Java的System.out.println是一個效果。

  • 關於echo有兩種設置 echo on 和echo off.前者是在此命令之後的命令都會顯示輸出,後者則不顯示後面的執行命令了

@

  • @ 的功能和echo off的功能一樣都是讓命令不顯示的。唯一的區別的@ 影響的是當前行而echo off影響的是在其後的所有的命令行。
  @echo off
    redis-server.exe redis.conf
  @pause
  • 1
  • 2
  • 3
  • 例如上面的bat文件的語句最終執行的效果是 echo off 這個命令不顯示 因爲@ 控制當前行不顯示。redis-server.exe redis.conf 這個命令也不顯示 。因爲echo off之後的命令都不現實。除非遇到echo on在此開啓了顯示的功能。

call

  • call別人說和start功能一樣,但是自己測試call無法使用,取而代之的我用的是start, start和call的作用就是在本bat文件中調用了別的bat文件。如果不用start或者call的話,那麼本bat文件將執行完別的bat就不在繼續執行本bat的其他語句了。相當於Java中的break了。

pause

  • pause是暫停的意思,就是bat執行完了之後cmd窗口不會關閉而是在pause的地方輸出 press any key …. 。他和exit相對。exit是指程序結束後就關閉窗口。正常pause和exit在文件的最後存在。

rem

  • 作爲程序員都是知道註釋的重要性的。就算是自己寫的代碼沒有良好的註釋過一段時間自己都會忘記這段代碼的作用。而在bat批處理語言中rem就是起到註釋的作用。 
    rem 我是註釋

參數傳遞

  • Java或者其他語言中都是可以進行參數傳遞的,這樣可以增加各個模塊的聯繫,bat也是可以傳遞參數的。他的傳遞參數的方法比較特別,不需要指定參數的類型。只是按參數的順序來獲取的。分別用%0~%9來獲取參數。這樣也就是說參數只能是9個。其中%0表示的bat方法的本身。%1~%9表示第幾個參數。

  • 新建一個method.bat,內容爲echo %1。我們新開cmd窗口。首先cd到method.bat所在的文件目錄中。執行語句 method.bat helloworld 程序結果 爲 helloworld。

特殊命令

  • 上面的一些基礎的命令之外還有一些屬於高級命令 ,正常情況寫我們做邏輯判斷的時候經常用到 if goto choice for,這四個使我們經常用到。

if

  • if 就是我們用到的程序判斷,根據條件執行不同的語句。其中的基本格式如下

    if “%1”==”test” echo test

  • 上面的代碼執行的效果就是輸入了test的參數就會輸出test 結果,輸入的可以是“ hello world ” ,在程序中的參數就是帶引號的參數。

  • if [not] exist 判斷不存在是執行的語句

  • if exist 判斷存在時存在的語句

  • if errorlevel num 根據程序的返回值判斷

goto

  • goto就是跳轉到哪裏 基本語法
 goto zxh
 :zxh
 echo 跳轉啦
  • 1
  • 2
  • 3
  • 其中goto去的端點 需要用:開頭

choice

  • 這個選擇項用的挺多的,因爲考慮程序的大衆化,我們程序正常會給用戶提供選擇,這裏就需要用到了choice了。

  • 關於choice中有哪些參數,我們可以打開cmd窗口執行 choice /? 
    這裏寫圖片描述

  • 上面的一張圖片已經解釋了choice的選項說明,我們有設麼格式的提示選項上面的圖片事列已經列出了五種類型的。我們根據不同需求些不同的bat.

  • 其中在/c後面的提示列表的編號我們一次是1,2,3….N。在我們根據errorlevel的值判斷的時候必須從高到底比如如下一段代碼纔有效

@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag

:defrag
echo I am defrag
goto end

:mem
echo I am mem
goto end

:end
echo good bye
pause
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

for

  • for循環是我們遍歷數據用的最多了。我們經常通過for來執行相同理念的操作。
FOR %%variable IN (set) DO command [command-parameters]
  • 1
  • 上面的for循環其實用Java語言寫就是一下代碼
for(Object obj in List<Object>){
//執行操作
}
  • 1
  • 2
  • 3
  • 所以上面的variable就是下面的obj
  • set 就是下面的list集合
  • command是我們的執行操作
  • command parameters 是我們執行操作的時候用到的參數正常就是variable(obj)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章