一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

bat文件詳解

 hdzgx 2017-09-29

自從操作系統(tǒng)誕生以來,批處理就是最重要的功能之一,但在Windows大行其道的今天,批處理這個(gè)概念對普通用戶而言已經(jīng)越來越遠(yuǎn),但不可否認(rèn),作為開發(fā)人員,這是必須要掌握的技能之一。在Linux系統(tǒng)下,批處理通過shell腳本完成,而在windows平臺下,批處理的文件后綴為.bat。bat文件其實(shí)就是dos命令的集合,但許多dos命令都被廢棄了,今天就來講解一下bat文件中使用的那些命令與bat文件的基本寫法。

基礎(chǔ)命令

echo

這是最基礎(chǔ)的顯示命令,將其后的內(nèi)容顯示在命令行,后面一般可以跟字符串、變量等,基本和Linux中的echo命令相同:echo "Hello,My First Bat."1

在實(shí)際應(yīng)用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結(jié)合來實(shí)現(xiàn)輸入一些命令到特定格式的文件中。而在bat文件頭,一般使用echo off語句表示后面的命令行不再顯示。該語句一般和@聯(lián)合使用,@用于命令之前,表示當(dāng)前命令行不顯示,但僅僅適用于當(dāng)前行。所以,一般我們所見的bat文件第一行如下:@echo off1

call

顧名思義,本命令用于調(diào)用外部bat文件,用法位call+【文件名】。如果不用call而直接調(diào)用別的批處理文件,那么執(zhí)行完那個(gè)批處理文件后將無法返回當(dāng)前文件并執(zhí)行當(dāng)前文件的后續(xù)命令。call a.txt1

rem

注釋,有些類似于C語言中的//,后面的內(nèi)容不會執(zhí)行,只是用于閱讀源碼時(shí)參考。

cd

chdir的簡寫,相信使用過命令行的人都不會陌生,用于切換路徑。有一些特殊的符號需要掌握一下,以下是基本用法:rem 假設(shè)當(dāng)前目錄為根目錄C盤,其中有my、your兩個(gè)文件夾,F(xiàn)盤有his文件夾 rem 進(jìn)入my文件夾 cd my rem /表示根目錄,從my進(jìn)入your cd /your rem 返回上次目錄 cd - rem 返回上級目錄 cd .. rem 返回根目錄 cd . rem 或者cd / rem 切換到F盤中的his,記住\d 不能省略 cd \d D:/his12345678910111213

pause

顧名思義,該目錄暫停程序執(zhí)行,運(yùn)行此句會暫停批處理的執(zhí)行并在屏幕上顯示Press any key to continue…的提示,等待用戶按任意鍵后繼續(xù)。

start

調(diào)用外部程序,所有的DOS命令和命令行程序都可以由start命令來調(diào)用。

常用參數(shù):

MIN 開始時(shí)窗口最小化

SEPARATE 在分開的空間內(nèi)開始 16 位 Windows 程序

HIGH 在 HIGH 優(yōu)先級類別開始應(yīng)用程序

REALTIME 在 REALTIME 優(yōu)先級類別開始應(yīng)用程序

WAIT 啟動應(yīng)用程序并等候它結(jié)束

parameters 這些為傳送到命令/程序的參數(shù)

執(zhí)行的應(yīng)用程序是32位GUI應(yīng)用程序時(shí),CMD.EXE不等應(yīng)用程序終止就返回命令提示。如果在命令腳本內(nèi)執(zhí)行,該新行為則不會發(fā)生。

choice

choice 使用此命令可以讓用戶輸入一個(gè)字符(用于選擇),從而根據(jù)用戶的選擇返回不同的errorlevel,然后于if errorlevel配合,根據(jù)用戶的選擇運(yùn)行不同的命令。

注意:choice命令為DOS或者Windows系統(tǒng)提供的外部命令,不同版本的choice命令語法會稍有不同,請用choice /?查看用法。

choice參數(shù)列表如下:

參數(shù)列表:

/C choices 指定要創(chuàng)建的選項(xiàng)列表。默認(rèn)列表是 “YN”。

/N 在提示符中隱藏選項(xiàng)列表。提示前面的消息得到顯示,選項(xiàng)依舊處于啟用狀態(tài)。

/CS 允許選擇分大小寫的選項(xiàng)。在默認(rèn)情況下,這個(gè)工具是不分大小寫的。

/T timeout做出默認(rèn)選擇之前,暫停的秒數(shù)可接受的值是從0到9999。如果指定了0,就不會有暫停,默認(rèn)選項(xiàng)會得到選擇。

/D choice 在 nnnn 秒之后指定默認(rèn)選項(xiàng)。字符必須在用 /C選項(xiàng)指定的一組選擇中;同時(shí),必須用/T指定 nnnn。

/M text 指定提示之前要顯示的消息。如果沒有指定,工具只顯示提示。

/? 顯示幫助消息。choice /C YNC /M "確認(rèn)請按Y,否請按N,或者取消請按C。" choice /T 10 /C ync /CS /D y choice /C ab /M "選項(xiàng)1請選擇a,選項(xiàng)2請選擇 b。" choice /C ab /N /M "選項(xiàng)1請選擇a,選項(xiàng)2請選擇b。1234

goto

指定跳轉(zhuǎn)到標(biāo)簽,找到標(biāo)簽后,程序?qū)⑻幚韽南乱恍虚_始的命令。goto命令因?yàn)樗囊恍┨匦栽诓簧俑呒壵Z言中變得臭名昭著,但在腳本語言中還是很有必要的。if {%1}=={} goto noparms  if {%2}=={} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過去,后面會有詳細(xì)的解釋。)  :noparms  echo Usage: monitor.bat ServerIP PortNumber  goto end12345

if

if 表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:

1. if “參數(shù)” == “字符串”  待執(zhí)行的命令

參數(shù)如果等于指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。(注意是兩個(gè)等號)if "%1"=="a" format a:  if {%1}=={} goto noparms  if {%2}=={} goto noparms 123

if exist 文件名 待執(zhí)行的命令

如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。if exist config.sys edit config.sys 1

if errorlevel / if not errorlevel 數(shù)字 待執(zhí)行的命令

如果返回碼等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。if errorlevel 2 goto x2  1

程序運(yùn)行時(shí)都會返回一個(gè)數(shù)字,稱為錯誤碼errorlevel或稱返回碼,常見的返回碼為0、1。

for

for命令是一個(gè)比較復(fù)雜的命令,主要用于參數(shù)在指定的范圍內(nèi)循環(huán)執(zhí)行命令。在批處理文件中使用for命令時(shí),指定變量請使用 %%variable。其實(shí)也就和高級程序語言中的for大同小異,其語法如下:

for %variable IN (set) DO command [command-parameters]

%variable 指定一個(gè)單一字母可替換的參數(shù)。

(set) 指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。

command 指定對每個(gè)文件執(zhí)行的命令。

command-parameters 為特定命令指定參數(shù)或命令行開關(guān)。

好了,基本上常用的命令也就這么多了,dos命令其實(shí)還很多,如set、|、shift等等,總之,要想寫好bat文件,命令的熟悉是必不可少的。

在bat中使用變量

任何語言中變量都是必不可少的,bat文件中當(dāng)然也是如此。說完了基礎(chǔ)命令,接下來就讓我們說說如何在bat文件中使用變量吧。

%[1-9]表示參數(shù),參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9,%0表示批處理命令本身,其它參數(shù)字符串用%1到%9順序表示。

如果現(xiàn)在有一批處理文件t.bat在C盤根目錄下,內(nèi)容如下:@echo off  type %1  type %2 123

那么在命令行輸入C:/>t a.txt b.txt 運(yùn)行,%1就表示a.txt,%2就表示b.txt,其他參數(shù)順延。

一個(gè)例子說明

當(dāng)然要學(xué)號任何語言,光靠看語法是無濟(jì)于事的,必須要分析源程序,最好是那些使用廣泛的源程序。為了方便講解,我從tomcat7中取出了批處理文件startup.bat并以注釋的方式寫上一些說明,方便大家學(xué)習(xí)。@echo off rem 創(chuàng)建當(dāng)前目錄的環(huán)境變量 set "CURRENT_DIR=%cd%" rem 判斷tomcat安裝目錄的環(huán)境變量是否正確,若正確,轉(zhuǎn)到gotHome if not "%CATALINA_HOME%" == "" goto gotHome rem 若不正確,把當(dāng)前目錄設(shè)置為軟件根目錄 set "CATALINA_HOME=%CURRENT_DIR%" rem 判斷是否存在catalina.bat批處理文件,存在,轉(zhuǎn)到okHome,否則返回上級目錄 if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome rem 返回上級目錄并將軟件根目錄設(shè)為該目錄 cd .. set "CATALINA_HOME=%cd%" rem 打開當(dāng)前目錄 cd "%CURRENT_DIR%" rem gotHome模塊 :gotHome if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome echo The CATALINA_HOME environment variable is not defined correctly echo This environment variable is needed to run this program goto end rem gotHome模塊結(jié)束 rem okHome模塊 :okHome set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" rem Check that target executable exists if exist "%EXECUTABLE%" goto okExec echo Cannot find "%EXECUTABLE%" echo This file is needed to run this program goto end rem okHome模塊結(jié)束 :okExec rem Get remaining unshifted command line arguments and save them in the set CMD_LINE_ARGS= :setArgs rem 判斷命令行參數(shù)是否存在 if ""%1""=="""" goto doneSetArgs set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 shift goto setArgs :doneSetArgs call "%EXECUTABLE%" start %CMD_LINE_ARGS% :end1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产精品一区二区三区激情| 亚洲清纯一区二区三区| 视频在线观看色一区二区| 国产美女精品人人做人人爽| 激情少妇一区二区三区| 欧美三级精品在线观看| 亚洲男人天堂成人在线视频| 精品国产亚洲免费91| 日韩综合国产欧美一区| 精品视频一区二区不卡| 国产精品亚洲综合天堂夜夜| 91精品日本在线视频| 日韩精品亚洲精品国产精品| 中文字幕日韩欧美理伦片| 日本东京热加勒比一区二区| 国产激情国产精品久久源| 亚洲男人的天堂色偷偷| 国产精品乱子伦一区二区三区| 国产a天堂一区二区专区| 欧美午夜视频免费观看| 亚洲av一区二区三区精品| 亚洲欧洲一区二区中文字幕| 欧美激情视频一区二区三区| 日本精品中文字幕人妻| 亚洲夫妻性生活免费视频| 精品一区二区三区三级视频| 少妇一区二区三区精品| 国产一区二区三区色噜噜| 男人操女人下面国产剧情| 亚洲一区二区三区日韩91| 中文字幕乱子论一区二区三区| 深夜少妇一区二区三区| 国产精品制服丝袜美腿丝袜| 国产亚洲精品俞拍视频福利区| 色欧美一区二区三区在线| 91人妻人人精品人人爽| 日韩国产中文在线视频| 国产高清三级视频在线观看| 99免费人成看国产片| 亚洲av熟女一区二区三区蜜桃| 国产又粗又爽又猛又黄的 |