您好,登錄后才能下訂單哦!
bat:
??????? 批處理(Batch)是一種簡化的腳本語言,也稱作宏。它應用于DOS和Windows系統中,它是由DOS或者Windows系統內嵌的命令解釋器(通常是COMMAND. COM或者CMD.EXE)解釋運行。類似于Unix中的Shell腳本。批處理文件具有.bat或者.cmd的擴展名,其最簡單的例子,是逐行書寫在命令行中會用到的各種命令。更復雜的情況,需要使用if,for,goto等命令控制程序的運行過程,如同C,Basic等中高級語言一樣。如果需要實現更復雜的應用,利用外部程序是必要的,這包括系統本身提供的外部命令和第三方提供的工具或者軟件。批處理文件,或稱為批處理程序,是由一條條的DOS命令組成的普通文本文件,可以用記事本直接編輯或用DOS命令創建,也可以用DOS下的文本編輯器Edit.exe來編輯。在“命令提示”下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用Cmd.exe運行該批處理程序。一般情況下,每條命令占據一行;當然也可以將多條命令用特定符號(如:&;、&&;、|、||等)分隔后寫入同一行中;還有的情況就是像if、for等較高級的命令則要占據幾行、幾十甚至幾百行的空間。系統在解釋運行批處理程序時,首先掃描整個批處理程序,然后從第一行代碼開始向下逐句執行所有的命令,直至程序結尾或遇見exit命令或出錯意外退出。
?
?
echo [{on|off}] [message]
Sample:@echo off / echo hello world
?
?
rem [注釋內容]
示例:rem 你好。
::和rem還是有區別的,當關閉回顯時,rem和::后的內容都不會顯示。但是當打開回顯時,rem后的內容會顯示出來,然而::后的內容仍然不會顯示。
?
?
Pause?? 此命令將顯示下面的消息:
Press any key to continue. . .(或:請按任意鍵繼續. . .)
?
?
call??? 從一個批處理程序調用另一個批處理程序,并且不終止父批處理程序。
call [路徑文件名] [標簽]]
?
?
start?? 調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。
如:start calc.exe即可打開Windows的計算器
?
?
goto??? 跳轉命令。程序指針跳轉到指定的標簽,從標簽后的第一條命令開始繼續執行批處理程序
示例:
:1
start
goto 1
注釋:會打開很多個窗口(用來整人相當不錯)。先用start命令打開窗口,再用goto 1命令轉到1標簽。注意標簽名字前面要加上英文的冒號。
?
?
set???? 顯示、設置或刪除變量。批處理中的變量是不區分類型的
示例:
set aa=345???? ##變量aa的值既可以被視為數字345,也可以被視為字符串345
?
命令"setlocal enabledelayedexpansion"來開啟延遲變量開關
?
?
@?????? 回顯屏蔽,表示不顯示@后面的命令
?
>、>>(輸出重定向)? <(輸入重定向)
?
?
^(轉義符):將特殊字符轉為普通字符,特殊符號指:| & > <
示例:
echo? ^>
?
邏輯命令符包括:&;、&&;、||
&:用來連接n個DOS命令,并把這些命令按順序執行,而不管是否有命令執行失敗;
&&:前面的命令成功執行時,執行&&后面的命令,前面命令失敗則后面不執行;
||:當前面的命令失敗時,執行||后面的命令,否則不執行后面命令;
?
?
if語句:
(1)字符串比較
IF [not] string1 compare-op string2 command1 [else command2]
compare-op有以下幾類:
== - 等于
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
注:選擇開關/i則不區分字符串大小寫;選擇not項,則對判斷結果進行邏輯非
示例:if %str1%==%str2% (echo 字符串相同!) else (echo 字符串不相同!)
if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2)
?
交互式:
echo.
set /p choice=是否顯示當前時間?(y/n)
if /i not %choice% EQU n echo 當前時間是:%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
注釋:存在判斷既可以判斷文件也可以判斷文件夾、格式嚴格按上(%0即代表該批處理的全稱,%~df0是對%0的修正,只保留了其驅動器盤符和路徑)
?
(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)結果判斷
?
?
for語句:
(1)無開關
FOR %%variable IN (set) DO command
?
示例:for %%i in (a,"b c",d) do echo %%i
注釋:%%variable是批處理程序里面的書寫格式,在DOS中書寫為%variable,即只有一個百分號(%)
?
(2)開關(大小寫都可)
FOR /L %%variable IN (start,step,end) DO command???????? ##/L可根據start、step、end控制循環次數
FOR /F ["options"] %%variable IN (set) DO command??????? ##/F
?##開關/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 截取第一個到倒數第6個字符:
echo %ifo:~0,-5%
echo 從第4個字符開始,截取5個字符:
echo %ifo:~3,5%
echo 從倒數第14個字符開始,截取5個字符:
echo %ifo:~-14,5%
pause
=========================================
?
=========================================
@echo off
echo 當前時間是:%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
?
?
擴充字符串
=========================================
~I - 刪除任何引號("),擴充 %I
%~fI - 將 %I 擴充到一個完全合格的路徑名
%~dI - 僅將 %I 擴充到一個驅動器號
%~pI - 僅將 %I 擴充到一個路徑
%~nI - 僅將 %I 擴充到一個文件名
%~xI - 僅將 %I 擴充到一個文件擴展名
%~sI - 擴充的路徑只含有短名
%~aI - 將 %I 擴充到文件的文件屬性
%~tI - 將 %I 擴充到文件的日期/時間
%~zI - 將 %I 擴充到文件的大小
%~$PATH:I - 查找列在路徑環境變量的目錄,并將 %I 擴充
到找到的第一個完全合格的名稱。如果環境變量名
未被定義,或者沒有找到文件,此組合鍵會擴充到
空字符串
可以組合修飾符來得到多重結果:
%~dpI - 僅將 %I 擴充到一個驅動器號和路徑
%~nxI - 僅將 %I 擴充到一個文件名和擴展名
%~fsI - 僅將 %I 擴充到一個帶有短名的完整路徑名
%~dp$PATH:i - 查找列在路徑環境變量的目錄,并將 %I 擴充
到找到的第一個驅動器號和路徑。
%~ftzaI - 將 %I 擴充到類似輸出線路的 DIR
=========================================
?
注:%0是批處理里面的參數,代表當前運行的批處理的完全路徑。類似的還有%1-%9,分別代表傳遞來的第1-9個參數
?
?
字符計算
=========================================
() - 分組
! ~ - -一元運算符(邏輯非、按位非、取負)
* / % - 算數運算符(乘、除得商、除得余數,即取余)
+ - - 算數運算符(加、減)
<< >> - 邏輯移位(左移一位、右移一位)
& - 按位“與”
^ - 按位“異”
| - 按位“或”
= *= /= %= += -= - 賦值
&= ^= |= <<= >>=
,-表達式分隔符(set可一次處理多個表達式)
=========================================
?
?
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。