Windows批處理文件簡明上手

批處理文件主要的功能是依次執(zhí)行多個命令行語句,可以減少一些繁復(fù)的工作。但是它也有一些語言特性,比如變量、控制等。

可以專門為bat文件建一個文件夾添加到環(huán)境變量里,將一些腳本放進(jìn)去,就可以在任何位置使用了。

簡單例子

比如部分朋友可能對下面的Git使用方式很眼熟:

git add .
git commit -m "some message"
git push

里面除了some message是變化的,可以寫一個下面的腳本(比如起名gpush.bat**):

git add .
git commit -m "%1"
git push
@pause

之后就可以使用一句命令,自動執(zhí)行上面的操作了。(此處接受了一個參數(shù)作為提交信息)。

gpush $message`

內(nèi)容提要

  1. 語法層面
    1. 控制命令語句顯示(命令語句是否顯示在終端界面
    2. 變量、控制語句(if、goto、pause、
  2. 例子
    1. 計算器實現(xiàn)

語法層面

基本命令

  1. rem,什么都不做,可用作注釋。
  2. pause,暫停執(zhí)行,以雙擊形式打開.bat文件,可以在最后加上pause避免執(zhí)行結(jié)束直接關(guān)閉終端。

命令語句顯示

區(qū)分命令語句和輸出,命令語句就是你批處理文件里寫的每一行代碼,輸出一般是echo命令的執(zhí)行效果。比如下圖關(guān)閉和打開命令語句的輸出對比:

不顯示命令與顯示命令的對比

首先理解一點(diǎn),默認(rèn)情況下,所有命令語句都會顯示的,包括if判斷、變量賦值等。

  1. @,@開頭表示這條語句不顯示在終端界面。
  2. echo,后跟on/off時,表示打開/關(guān)閉全局命令語句的輸出。其他時候,表示輸出一些東西到控制臺(也可以輸出到指定文件里)。echo命令一般都跟@連用,以保證自己不會顯示在終端。

變量

  1. 腳本名后跟一些參數(shù),在腳本里可以使用%+數(shù)字的形式訪問,%0指腳本名。比如之前使用的gpush message%0就是gpush,%1就是message
  2. 腳本運(yùn)行中的參數(shù),使用set設(shè)置,%{name}%訪問:
    set a=12
    echo %a%
    
    有一些特殊用法:
    1. 將用戶輸入設(shè)置為變量 set /p {name}=提示信息:注意:
      set /p a=請輸入?yún)?shù)1:
      
    2. 算術(shù)運(yùn)算,比如將a+b的值賦給result變量
      set /a result = %a% + %b%
      

條件和控制

  1. if,if "{變量}"=="值"
  2. goto,可以直接跳轉(zhuǎn)到指定位置位置需要以:開頭;比如下面要求用戶必須輸入y/n才可以結(jié)束(end位置),否則就回到初始位置(start位置):
    :start
    set /p agree=是否同意(y/n):
    
    if "%agree%"=="y" goto end
    if "%agree%"=="n" goto end
    goto start
    
    :end
    pause
    

例子

  1. 加減法計算器

    可以輸入(+/-)選擇執(zhí)行加法還是減法,輸入錯誤會報錯。然后獲取兩個用戶輸入,輸出計算結(jié)果。最后讓用戶可選回到開始位置繼續(xù)計算。

    @echo off
    :start
    set /p action=請選擇計算(+/-):
    
    if "%action%"=="+" goto add
    if "%action%"=="-" goto sub
    goto action_error
    
    :action_error
    @echo 操作錯誤,只支持(+/-)兩種操作
    @goto end
    
    :add
    set /p a=請輸入?yún)?shù)1:
    set /p b=請輸入?yún)?shù)2:
    set /a result=%a%+%b%
    goto result
    
    :sub 
    set /p a=請輸入?yún)?shù)1:
    set /p b=請輸入?yún)?shù)2:
    set /a result=%a%-%b%
    goto result
    
    :result
    @echo 計算結(jié)果:%a%%action%%b%=%result%
    
    :end
    set /p toStart=繼續(xù)請輸入1:
    if "%toStart%"=="1" goto start
    @pause
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個人學(xué)習(xí)批處理的初衷來源于實際工作;在某個迭代版本有個BS(安卓手游模擬器)大需求,從而在測試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,983評論 0 11
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,537評論 1 19
  • 一、基礎(chǔ)語法: 1.批處理文件是一個“.bat”結(jié)尾的文本文件,這個文件的每一行都是一條DOS命令??梢允褂萌魏挝?..
    蔣_Sir閱讀 9,388評論 1 4
  • 批處理符號簡介 回顯屏蔽 @ 重定向1 >與>> 重定向2 < 管道符號 | 轉(zhuǎn)義符 ^ 邏輯命令符包括:&、&&...
    wyude閱讀 3,110評論 2 5
  • 柳葉湖是旅游圣地,到了這,各種壓力全然消失,只看得見它嫵媚的臉龐。 從每個角度看湖水的顏色是不一樣的,有蔚藍(lán)色,金...
    杏兒姐閱讀 524評論 0 3

友情鏈接更多精彩內(nèi)容