bat:
專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站設(shè)計服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)石柱土家族免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(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ò)展名,其最簡單的例子,是逐行書寫在命令行中會用到的各種命令。更復(fù)雜的情況,需要使用if,for,goto等命令控制程序的運(yùn)行過程,如同C,Basic等中高級語言一樣。如果需要實現(xiàn)更復(fù)雜的應(yīng)用,利用外部程序是必要的,這包括系統(tǒng)本身提供的外部命令和第三方提供的工具或者軟件。批處理文件,或稱為批處理程序,是由一條條的DOS命令組成的普通文本文件,可以用記事本直接編輯或用DOS命令創(chuàng)建,也可以用DOS下的文本編輯器Edit.exe來編輯。在“命令提示”下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統(tǒng)就會調(diào)用Cmd.exe運(yùn)行該批處理程序。一般情況下,每條命令占據(jù)一行;當(dāng)然也可以將多條命令用特定符號(如:&;、&&;、|、||等)分隔后寫入同一行中;還有的情況就是像if、for等較高級的命令則要占據(jù)幾行、幾十甚至幾百行的空間。系統(tǒng)在解釋運(yùn)行批處理程序時,首先掃描整個批處理程序,然后從第一行代碼開始向下逐句執(zhí)行所有的命令,直至程序結(jié)尾或遇見exit命令或出錯意外退出。
?
?
echo [{on|off}] [message]
Sample:@echo off / echo hello world
?
?
rem [注釋內(nèi)容]
示例:rem 你好。
::和rem還是有區(qū)別的,當(dāng)關(guān)閉回顯時,rem和::后的內(nèi)容都不會顯示。但是當(dāng)打開回顯時,rem后的內(nèi)容會顯示出來,然而::后的內(nèi)容仍然不會顯示。
?
?
Pause?? 此命令將顯示下面的消息:
Press any key to continue. . .(或:請按任意鍵繼續(xù). . .)
?
?
call??? 從一個批處理程序調(diào)用另一個批處理程序,并且不終止父批處理程序。
call [路徑文件名] [標(biāo)簽]]
?
?
start?? 調(diào)用外部程序,所有的DOS命令和命令行程序都可以由start命令來調(diào)用。
如:start calc.exe即可打開Windows的計算器
?
?
goto??? 跳轉(zhuǎn)命令。程序指針跳轉(zhuǎn)到指定的標(biāo)簽,從標(biāo)簽后的第一條命令開始繼續(xù)執(zhí)行批處理程序
示例:
:1
start
goto 1
注釋:會打開很多個窗口(用來整人相當(dāng)不錯)。先用start命令打開窗口,再用goto 1命令轉(zhuǎn)到1標(biāo)簽。注意標(biāo)簽名字前面要加上英文的冒號。
?
?
set???? 顯示、設(shè)置或刪除變量。批處理中的變量是不區(qū)分類型的
示例:
set aa=345???? ##變量aa的值既可以被視為數(shù)字345,也可以被視為字符串345
?
命令"setlocal enabledelayedexpansion"來開啟延遲變量開關(guān)
?
?
@?????? 回顯屏蔽,表示不顯示@后面的命令
?
>、>>(輸出重定向)? <(輸入重定向)
?
?
^(轉(zhuǎn)義符):將特殊字符轉(zhuǎn)為普通字符,特殊符號指:| & > <
示例:
echo? ^>
?
邏輯命令符包括:&;、&&;、||
&:用來連接n個DOS命令,并把這些命令按順序執(zhí)行,而不管是否有命令執(zhí)行失??;
&&:前面的命令成功執(zhí)行時,執(zhí)行&&后面的命令,前面命令失敗則后面不執(zhí)行;
||:當(dāng)前面的命令失敗時,執(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項,則對判斷結(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)前時間?(y/n)
if /i not %choice% EQU n echo 當(dāng)前時間是:%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是對%0的修正,只保留了其驅(qū)動器盤符和路徑)
?
(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,即只有一個百分號(%)
?
(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 原字符串(第二行為各字符的序號):
echo %ifo%
echo 1234567890123 45678901234567890123456
echo 截取前5個字符:
echo %ifo:~0,5%
echo 截取最后5個字符:
echo %ifo:~-5%
echo 截取第一個到倒數(shù)第6個字符:
echo %ifo:~0,-5%
echo 從第4個字符開始,截取5個字符:
echo %ifo:~3,5%
echo 從倒數(shù)第14個字符開始,截取5個字符:
echo %ifo:~-14,5%
pause
=========================================
?
=========================================
@echo off
echo 當(dāng)前時間是:%time% 即 %time:~0,2%點%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 - 刪除任何引號("),擴(kuò)充 %I
%~fI - 將 %I 擴(kuò)充到一個完全合格的路徑名
%~dI - 僅將 %I 擴(kuò)充到一個驅(qū)動器號
%~pI - 僅將 %I 擴(kuò)充到一個路徑
%~nI - 僅將 %I 擴(kuò)充到一個文件名
%~xI - 僅將 %I 擴(kuò)充到一個文件擴(kuò)展名
%~sI - 擴(kuò)充的路徑只含有短名
%~aI - 將 %I 擴(kuò)充到文件的文件屬性
%~tI - 將 %I 擴(kuò)充到文件的日期/時間
%~zI - 將 %I 擴(kuò)充到文件的大小
%~$PATH:I - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充
到找到的第一個完全合格的名稱。如果環(huán)境變量名
未被定義,或者沒有找到文件,此組合鍵會擴(kuò)充到
空字符串
可以組合修飾符來得到多重結(jié)果:
%~dpI - 僅將 %I 擴(kuò)充到一個驅(qū)動器號和路徑
%~nxI - 僅將 %I 擴(kuò)充到一個文件名和擴(kuò)展名
%~fsI - 僅將 %I 擴(kuò)充到一個帶有短名的完整路徑名
%~dp$PATH:i - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴(kuò)充
到找到的第一個驅(qū)動器號和路徑。
%~ftzaI - 將 %I 擴(kuò)充到類似輸出線路的 DIR
=========================================
?
注:%0是批處理里面的參數(shù),代表當(dāng)前運(yùn)行的批處理的完全路徑。類似的還有%1-%9,分別代表傳遞來的第1-9個參數(shù)
?
?
字符計算
=========================================
() - 分組
! ~ - -一元運(yùn)算符(邏輯非、按位非、取負(fù))
* / % - 算數(shù)運(yùn)算符(乘、除得商、除得余數(shù),即取余)
+ - - 算數(shù)運(yùn)算符(加、減)
<< >> - 邏輯移位(左移一位、右移一位)
& - 按位“與”
^ - 按位“異”
| - 按位“或”
= *= /= %= += -= - 賦值
&= ^= |= <<= >>=
,-表達(dá)式分隔符(set可一次處理多個表達(dá)式)
=========================================
?
?
?
新聞名稱:Windows下bat腳本
文章鏈接:http://www.rwnh.cn/article26/ippjcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、建站公司、靜態(tài)網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站改版、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)