首先講講什麼是命令行,在windows操做系統中,點擊左下角的win圖標,直接輸入cmd搜索,左鍵點擊進入命令行模式(或按鍵盤上的win鍵+r直接調出來命令行窗口)。html
在windows下命令行中,咱們能夠執行各類命令,一般這些命令被稱爲dos命令,也是各個版本windows都會自帶的命令,因此不管在什麼條件下,只要有windows系統,就可使用dos命令。windows
bat腳本就是把一條條單獨的dos命令組合在一塊兒的多條dos命令集合的文件,後綴是.bat。工具
本文是對第一篇文章補充的詳細解釋,包括命令詳解、bat腳本的格式說明。(在學習的過程當中,能夠在本身電腦的命令行中直接進行測試驗證)學習
除以前教程中的echo, set, rem, pause外,主要涉及到的dos命令或功能有:測試
for, wmic, 截取字符串, 延遲執行命令,比較操做,重定向ui
跳轉至第一篇文章 點擊這裏操作系統
@echo off rem 採集內存總容量 for /f "skip=1" %%i in ('wmic os get TotalVisibleMemorySize') do ( if %%i geq 0 set totalMem=%%i ) set /a tmp=%totalMem%/1024 set totalMem=%tmp:~0,-3%.%tmp:~-3%G echo 總內存容量:%totalMem% echo ----------------------------------------- rem 設置2秒的延遲 ping 127.0.0.1 -n 2 > null rem 採集磁盤信息 echo 磁盤信息(可用/總量) wmic LOGICALDISK get DeviceID,FreeSpace,Size > tmp.txt for /f "skip=1 tokens=1,2,3*" %%i in ('type tmp.txt') do ( set totalDisk=%%k set freeDisk=%%j set /a tmp1=!freeDisk:~0,-5!/1074 set /a tmp2=!totalDisk:~0,-5!/1074 set diskStr=%%i!tmp1:~0,-1!.!tmp1:~-1!G/!tmp2:~0,-1!.!tmp2:~-1!G echo !diskStr! ) del tmp.txt
功能概述:在命令行中輸出自定義字符串。(能夠理解爲dos命令的循環操做,可是有一些區別)命令行
參數說明:code
FOR /D %variable IN (set) DO command [command-parameters]htm
若是集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
檢查以 [drive:]path 爲根的目錄樹,指向每一個目錄中的FOR 語句。若是在 /R 後沒有指定目錄,則使用當前目錄。若是集僅爲一個單點(.)字符,則枚舉該目錄樹。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
該集表示以增量形式從開始到結束的一個數字序列。
所以,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生序列 (5 4 3 2 1)。
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters
示例:
for /f "skip=1 tokens=1,2,3*" %%i in ('type tmp.txt') do @echo %%i,%%j,%%k
該語句將會將tmp.txt文件中的內容的前三個字段打印到命令行中,分隔符未指定,則是默認的空格等空白字符
功能概述:wmic能夠對window nt系統的WMI管理組件進行管理,功能包括但不限於計算機系統信息,內存信息,磁盤信息,硬件信息等。
參數及說明:
第一種方式:進入命令行,輸入wmic,便可進入wmic的命令行,輸入/?可查看全部的組件在WMI中的別名。如process(進程信息),os(操做系統信息),computersystem(計算機系統信息)等。。。
第二種方式:直接在cmd命令行輸入wmic+各類組件別名+執行的操做,好比wmic os get list brief
示例:
wmic os list brief
輸出結果
C:\Users\qjx>wmic os list brief BuildNumber Organization RegisteredUser SerialNumber SystemDirectory Version 17134 00329-00000-00003-AA288 C:\WINDOWS\system32 10.0.17134
總結:
wmic在windows操做系統中的應用不少,若是利用好這個工具,能夠用這個簡單的方式實現許多複雜的獲取計算機信息的功能。
功能概述:
Windows操做系統級別,實現將字符串分割。
參數說明:
若是定義了一個變量,那麼正常的調用該變量的方式是在變量名兩邊加%符號調用,截取字符串是在調用的同時作了一些特殊的操做。
示例:
@echo off set tmp=123456 echo %tmp% echo %tmp:~0,3% echo %tmp:~0,-2% echo %tmp:~-1%
輸出
G:\Own\WeChat\course2>tmp2.bat 123456 123 1234 6
功能概述:
延遲執行命令,好比3秒後執行某條命令,能夠用ping 127.0.0.1 -n 3 > null實現
示例
@echo off echo 11111 ping 127.0.0.1 -n 3 > null echo 22222
結果:
G:\Own\WeChat\course2>tmp2.bat 11111 22222
功能概述:
比較運算符(精度小於32位,若大於32爲則沒法比較):
EQU - 等於
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於
@echo off set num1=11 set num2=22 if %num1% equ %num2% echo "num1=num2" if %num1% gtr %num2% echo "num1>num2" if %num1% lss %num2% echo "num1<num2"
結果:
G:\Own\WeChat\course2>tmp2.bat "num1<num2"
功能概述:
重定向的做用是將命令行的輸出結果輸出到文件。
wmic LOGICALDISK get DeviceID,FreeSpace,Size > tmp.txt
總結:
若是程序產生的數據不須要持久化存儲,但又須要做爲接口傳遞給下一個程序,一般都會採用中間文件的處理方式。
若有錯誤請指出