Windows下bat腳本

bat:

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)石柱土家族免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

???????批處理(Batch)是一種簡化的腳本語言,也稱作宏。它應(yīng)用于DOS和Windows系統(tǒng)中,它是由DOS或者Windows系統(tǒng)內(nèi)嵌的命令解釋器(通常是COMMAND. COM或者CMD.EXE)解釋運(yùn)行。類似于Unix中的Shell腳本。批處理文件具有.bat或者.cmd的擴(kuò)展名,其最簡單的例子,是逐行書寫在命令行中會(huì)用到的各種命令。更復(fù)雜的情況,需要使用if,for,goto等命令控制程序的運(yùn)行過程,如同C,Basic等中高級(jí)語言一樣。如果需要實(shí)現(xiàn)更復(fù)雜的應(yīng)用,利用外部程序是必要的,這包括系統(tǒng)本身提供的外部命令和第三方提供的工具或者軟件。批處理文件,或稱為批處理程序,是由一條條的DOS命令組成的普通文本文件,可以用記事本直接編輯或用DOS命令創(chuàng)建,也可以用DOS下的文本編輯器Edit.exe來編輯。在“命令提示”下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統(tǒng)就會(huì)調(diào)用Cmd.exe運(yùn)行該批處理程序。一般情況下,每條命令占據(jù)一行;當(dāng)然也可以將多條命令用特定符號(hào)(如:&;、&&;、|、||等)分隔后寫入同一行中;還有的情況就是像if、for等較高級(jí)的命令則要占據(jù)幾行、幾十甚至幾百行的空間。系統(tǒng)在解釋運(yùn)行批處理程序時(shí),首先掃描整個(gè)批處理程序,然后從第一行代碼開始向下逐句執(zhí)行所有的命令,直至程序結(jié)尾或遇見exit命令或出錯(cuò)意外退出。

?

?

echo [{on|off}] [message]

Sample:@echo off / echo hello world

?

?

rem [注釋內(nèi)容]

示例:rem 你好。

::和rem還是有區(qū)別的,當(dāng)關(guān)閉回顯時(shí),rem和::后的內(nèi)容都不會(huì)顯示。但是當(dāng)打開回顯時(shí),rem后的內(nèi)容會(huì)顯示出來,然而::后的內(nèi)容仍然不會(huì)顯示。

?

?

Pause?? 此命令將顯示下面的消息:

Press any key to continue. . .(或:請(qǐng)按任意鍵繼續(xù). . .)

?

?

call??? 從一個(gè)批處理程序調(diào)用另一個(gè)批處理程序,并且不終止父批處理程序。

call [路徑文件名] [標(biāo)簽]]

?

?

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

如:start calc.exe即可打開Windows的計(jì)算器

?

?

goto??? 跳轉(zhuǎn)命令。程序指針跳轉(zhuǎn)到指定的標(biāo)簽,從標(biāo)簽后的第一條命令開始繼續(xù)執(zhí)行批處理程序

示例:

:1

start

goto 1

注釋:會(huì)打開很多個(gè)窗口(用來整人相當(dāng)不錯(cuò))。先用start命令打開窗口,再用goto 1命令轉(zhuǎn)到1標(biāo)簽。注意標(biāo)簽名字前面要加上英文的冒號(hào)。

?

?

set???? 顯示、設(shè)置或刪除變量。批處理中的變量是不區(qū)分類型的

示例:

set aa=345???? ##變量aa的值既可以被視為數(shù)字345,也可以被視為字符串345

?

命令"setlocal enabledelayedexpansion"來開啟延遲變量開關(guān)

?

?

@?????? 回顯屏蔽,表示不顯示@后面的命令

?

>、>>(輸出重定向)? <(輸入重定向)

?

?

^(轉(zhuǎn)義符):將特殊字符轉(zhuǎn)為普通字符,特殊符號(hào)指:| & > <

示例:

echo? ^>

?

邏輯命令符包括:&;、&&;、||

&:用來連接n個(gè)DOS命令,并把這些命令按順序執(zhí)行,而不管是否有命令執(zhí)行失??;

&&:前面的命令成功執(zhí)行時(shí),執(zhí)行&&后面的命令,前面命令失敗則后面不執(zhí)行;

||:當(dāng)前面的命令失敗時(shí),執(zhí)行||后面的命令,否則不執(zhí)行后面命令;

?

?

if語句:

(1)字符串比較

IF [not] string1 compare-op string2 command1 [else command2]

compare-op有以下幾類:

== - 等于

EQU - 等于

NEQ - 不等于

LSS - 小于

LEQ - 小于或等于

GTR - 大于

GEQ - 大于或等于

注:選擇開關(guān)/i則不區(qū)分字符串大小寫;選擇not項(xiàng),則對(duì)判斷結(jié)果進(jìn)行邏輯非

示例:if %str1%==%str2% (echo 字符串相同!) else (echo 字符串不相同!)

if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2)

?

交互式:

echo.

set /p choice=是否顯示當(dāng)前時(shí)間?(y/n)

if /i not %choice% EQU n echo 當(dāng)前時(shí)間是:%date% %time%

pause>nul

?

(2)存在判斷

IF [NOT] EXIST filename command1 [else command2]

?

示例:

@echo off

if exist %0 echo 文件%0是存在的!

if not exist %~df0 (

echo 文件夾%~df0不存在!

) else echo 文件夾%~df0存在!

pause>nul

注釋:存在判斷既可以判斷文件也可以判斷文件夾、格式嚴(yán)格按上(%0即代表該批處理的全稱,%~df0是對(duì)%0的修正,只保留了其驅(qū)動(dòng)器盤符和路徑)

?

(3)定義判斷(判斷變量是否存在)

IF [not] DEFINED variable command1 [else command2]

?

示例:

@echo off

set var=111

if defined var (echo var=%var%) else echo var尚未定義!

set var=% %

if defined var (echo var=%var%) else echo var尚未定義!

pause>nul

?

(4)結(jié)果判斷

?

?

for語句:

(1)無開關(guān)

FOR %%variable IN (set) DO command

?

示例:for %%i in (a,"b c",d) do echo %%i

注釋:%%variable是批處理程序里面的書寫格式,在DOS中書寫為%variable,即只有一個(gè)百分號(hào)(%)

?

(2)開關(guān)(大小寫都可)

FOR /L %%variable IN (start,step,end) DO command???????? ##/L可根據(jù)start、step、end控制循環(huán)次數(shù)

FOR /F ["options"] %%variable IN (set) DO command??????? ##/F

?##開關(guān)/D羅列出所有文件? /R遍歷文件夾

?

字符串:

=========================================

@echo off

set ifo=abcdefghijklmnopqrstuvwxyz0 12 3456789

echo 原字符串(第二行為各字符的序號(hào)):

echo %ifo%

echo 1234567890123 45678901234567890123456

echo 截取前5個(gè)字符:

echo %ifo:~0,5%

echo 截取最后5個(gè)字符:

echo %ifo:~-5%

echo 截取第一個(gè)到倒數(shù)第6個(gè)字符:

echo %ifo:~0,-5%

echo 從第4個(gè)字符開始,截取5個(gè)字符:

echo %ifo:~3,5%

echo 從倒數(shù)第14個(gè)字符開始,截取5個(gè)字符:

echo %ifo:~-14,5%

pause

=========================================

?

=========================================

@echo off

echo 當(dāng)前時(shí)間是:%time% 即 %time:~0,2%點(diǎn)%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒

pause

=========================================

?

?

替換字符串

=========================================

@echo off

set aa=偉大的中國!我為你自豪!

echo 替換前:%aa%

echo 替換后:%aa:中國=中華人民共和國%

echo aa = %aa%

set "aa=%aa:中國=中華人民共和國%"

echo aa = %aa%

pause

=========================================

?

?

字符串合并

@echo off

set aa=偉大的中國!

set bb=我為你自豪!

echo %aa%%bb%

echo aa=%aa%

echo bb=%bb%

set "aa=%aa%%bb%"

echo aa=%aa%

pause

?

?

擴(kuò)充字符串

=========================================

~I - 刪除任何引號(hào)("),擴(kuò)充 %I

%~fI - 將 %I 擴(kuò)充到一個(gè)完全合格的路徑名

%~dI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)

%~pI - 僅將 %I 擴(kuò)充到一個(gè)路徑

%~nI - 僅將 %I 擴(kuò)充到一個(gè)文件名

%~xI - 僅將 %I 擴(kuò)充到一個(gè)文件擴(kuò)展名

%~sI - 擴(kuò)充的路徑只含有短名

%~aI - 將 %I 擴(kuò)充到文件的文件屬性

%~tI - 將 %I 擴(kuò)充到文件的日期/時(shí)間

%~zI - 將 %I 擴(kuò)充到文件的大小

%~$PATH:I - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充

到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名

未被定義,或者沒有找到文件,此組合鍵會(huì)擴(kuò)充到

空字符串

可以組合修飾符來得到多重結(jié)果:

%~dpI - 僅將 %I 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)和路徑

%~nxI - 僅將 %I 擴(kuò)充到一個(gè)文件名和擴(kuò)展名

%~fsI - 僅將 %I 擴(kuò)充到一個(gè)帶有短名的完整路徑名

%~dp$PATH:i - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充

到找到的第一個(gè)驅(qū)動(dòng)器號(hào)和路徑。

%~ftzaI - 將 %I 擴(kuò)充到類似輸出線路的 DIR

=========================================

?

注:%0是批處理里面的參數(shù),代表當(dāng)前運(yùn)行的批處理的完全路徑。類似的還有%1-%9,分別代表傳遞來的第1-9個(gè)參數(shù)

?

?

字符計(jì)算

=========================================

() - 分組

! ~ - -一元運(yùn)算符(邏輯非、按位非、取負(fù))

* / % - 算數(shù)運(yùn)算符(乘、除得商、除得余數(shù),即取余)

+ - - 算數(shù)運(yùn)算符(加、減)

<< >> - 邏輯移位(左移一位、右移一位)

& - 按位“與”

^ - 按位“異”

| - 按位“或”

= *= /= %= += -= - 賦值

&= ^= |= <<= >>=

,-表達(dá)式分隔符(set可一次處理多個(gè)表達(dá)式)

=========================================

?

?

?

新聞名稱:Windows下bat腳本
文章鏈接:http://muchs.cn/article26/ippjcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)建站公司、靜態(tài)網(wǎng)站動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)