基本知識
cmd 與 命令和關鍵字不區(qū)分大小寫,變量名區(qū)分大小寫
DOS 是磁盤操作系統(tǒng);命令提示符是 DOS 系統(tǒng)的界面中輸入 DOS 命令的提示位置;cmd 是系統(tǒng)運行其自帶 DOS 的命令
PID 是 (進程號);IM 是 (映像名稱)
在 .bat 文件開頭加上 @echo off 代表不輸出描述,比如 C:\Users\14805\>... 這樣的描述不會輸出,直接輸出結(jié)果
echo輸出結(jié)果,pause使命令框停頓,pause>nul表示不輸出結(jié)束提示,cls清屏命令,dir查看目錄
設置變量 set a=10,輸出變量 echo %a%,設置變量表達式 set /a b=%a%+1
cmd的注釋 ::或 rem
輸入?yún)?shù)使用 set /p 變量名=
@echo off set /p a= echo %a% pause
批處理運算 算數(shù)運算 命令模式
a表示運算操作
set /a 1+2
文件模式
@echo off set /a 變量名=運算表達式 echo %變量名% pause
重定向運算
@echo off set /a b=1+3 echo b > test.txt echo zzp >> test.txt pause
多命令運算
#都不會執(zhí)行右邊的命令 ipconfigaa && net user ipconfig || net user
管道符號
dir | find ".txt"?
批處理基本命令 命令格式
命令+子命令+參數(shù)+操作+選項
命令幫助查看 /?或 /help
#查看所有用戶 net user #查看幫助 net user /? #查看幫助完整版 net user /help
參數(shù)傳遞
@echo off set /a b=%1+%2 echo %b% pause
修飾命令 顏色命令
color 顏色參數(shù)
可以使用 color /?查看顏色參數(shù)和幫助信息,color一般會添加兩個參數(shù),第一個是背景顏色,第二個是字體顏色
#背景為黑色,字體為淡綠色 color 0a
標題命令
改變命令框的標題
title []
title hack
時間命令
date /t time /t
啟動命令
start +參數(shù)
start D:\桌面\前端\1-2.html
調(diào)用腳本文件
call [path] 文件名 傳遞的參數(shù)
寫一個1.bat作為輸出
@echo off echo %1
寫一個2.bat調(diào)用1.bat
@echo off set /a b=%1+%2 call 1.bat %b% pause
任務列表查看命令
可以顯示本地或遠程的當前運行的進程列表
[/S IP [/U [/P []]]]
參數(shù)列表 篩選器
其中對應的語法如下(更多的篩選規(guī)則使用幫助命令查看)
注:gt(大于)、ge(大于等于)、lt(小于等于)和、le(小于等于)eq(等于)ne(不等于)
篩選器名稱有效運算符有效值
eq, ne
mac修改區(qū)分大小寫文件系統(tǒng),
eq, ne
映像名稱
PID
eq, ne, gt, lt, ge, le
PID 值
樣例
tasklist /fi "imagename eq Typora.exe" tasklist /fi "imagename eq Typora.exe" /fo "list"
任務關閉命令
使用該工具按照進程 ID (PID) 或映像名稱終止任務
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
TASKKILL /IM notepad.exe TASKKILL /PID 1230 /PID 1241 /PID 1253 /T TASKKILL /F /IM cmd.exe /T TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*" TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe TASKKILL /S system /U 域\用戶名 /FI "用戶名 ne NT*" /IM * TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
文件夾結(jié)構(gòu)查看命令
以圖形的形式來顯示驅(qū)動器或路徑的文件夾結(jié)構(gòu)
TREE [drive:][path] [/F] [/A]
tree /f
關機命令
+參數(shù)
參數(shù)列表 計劃任務命令
允許管理員創(chuàng)建、刪除、查詢、更改、運行和中止本地或遠程系統(tǒng)上的計劃任務
SCHTASKS /parameter [arguments]
SCHTASKS SCHTASKS /? SCHTASKS /Run /? SCHTASKS /End /? SCHTASKS /Create /? SCHTASKS /Delete /?
/
允許管理員在本地或遠程系統(tǒng)上創(chuàng)建計劃任務mac修改區(qū)分大小寫文件系統(tǒng),具體參數(shù)可以使用命令 / /?查看
SCHTASKS /Create [/S system [/U username [/P [password]]]] [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day] [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime] [/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]] [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F] [/HRESULT] [/?]
#在遠程機器 "ABC" 上創(chuàng)建計劃任務 "doc",該機器每小時在 "runasuser" 用戶下運行 notepad.exe。 SCHTASKS /Create /S ABC /U user /P password /RU runasuser/RP runaspassword /SC HOURLY /TN doc /TR notepad
環(huán)境變量命令
顯示、設置或刪除 cmd.exe 環(huán)境變量
SET [variable=[string]]
要顯示當前環(huán)境變量,鍵入不帶參數(shù)的 SET,前綴匹配 SET P 會顯示所有以字母 P 打頭的變量
目錄命令 目錄瀏覽
目錄和文件查看命令 dir
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
/B 使用空格式(沒有標題信息或摘要)
/L 用小寫
/O 用分類順序列出文件,排序規(guī)則
dir /od dir /ah /b
目錄的創(chuàng)建與刪除
創(chuàng)建目錄 mkdir
MKDIR [drive:]path
mkdir a\b\c #多級目錄的創(chuàng)建
刪除目錄 rmdir
RMDIR [/S] [/Q] [drive:]path
目錄切換
顯示當前目錄名或改變當前目錄 cd
CD [/D] [drive:][path]
重命名命令
REN [drive:][path]filename1 filename2.
注意:不能為目標文件指定新的驅(qū)動器或路徑
ren test.txt test1.txt
拷貝命令
將一份或多份文件復制到另一個位置
COPY source destination
文件的創(chuàng)建與刪除
文件的創(chuàng)建
文件的刪除
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
移動命令
移動文件并重命名文件和目錄,可以使用通配符 *
#移動至少一個文件 MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination #重命名一個目錄 MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2
#把在同級目錄的test1的全部內(nèi)容移動至test move test1\* test #重命名文件夾test move test test1
網(wǎng)路相關命令 用戶操作命令
NET USER 將創(chuàng)建并修改計算機上的用戶帳戶。在不使用命令開關的情況下,將列出計算機的用戶帳戶。用戶帳戶信息存儲在用戶帳戶數(shù)據(jù)庫中,可以使用 net user /help查看詳細信息
[username [password | *] [options]] [/DOMAIN] username {password | *} /ADD [options] [/DOMAIN] username [/DELETE] [/DOMAIN]
net user admin 123456 /add net user admin /delete
使用 net user 可以查看用戶信息(包含用戶組信息)
net user Administrator
用戶組操作命令
NET 修改計算機上的本地組。使用時如果沒有選項,它將顯示計算機上的本地組
NET LOCALGROUP [groupname [/COMMENT:"text"]] [/DOMAIN] groupname {/ADD [/COMMENT:"text"] | /DELETE} [/DOMAIN] groupname username [...] {/ADD | /DELETE} [/DOMAIN]
net localgroup Administrators admin /add net localgroup Administrators admin /delete
網(wǎng)絡連通性檢測命令
檢查網(wǎng)絡通信狀態(tài)的命令,用于查看TCP/IP 網(wǎng)絡上的PC 和網(wǎng)絡設備是否正確連接 ping
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p] [-4] [-6] target_name
可以是IP或域名
ping 127.0.0.1可以檢測本地網(wǎng)卡是否正常工作
遠程連接
安全外殼協(xié)議( Shell ,簡稱SSH)是一種加密的網(wǎng)絡傳輸協(xié)議,可在不安全的網(wǎng)絡中為網(wǎng)絡服務提供安全的傳輸環(huán)境。最常見的用途是遠程登錄系統(tǒng),人們通常利用SSH來傳輸命令行界面和遠程執(zhí)行命令
SSH 的基本使用方法
ssh user@remote -p port
路由信息查看
tracert target_name
網(wǎng)絡適配器命令
是電腦上用來控制網(wǎng)絡連線的一個命令行工具。它的主要功用,包括用來顯示現(xiàn)時網(wǎng)絡連線的設置(/all參數(shù)),或透過/參數(shù)來釋放獲取的ip位置,和透過 /renew 來重新獲取ip位置的分配
ipconfig [/allcompartments] [/? | /all | /renew [adapter] | /release [adapter] | /renew6 [adapter] | /release6 [adapter] | /flushdns | /displaydns | /registerdns | /showclassid adapter | /setclassid adapter [classid] | /showclassid6 adapter | /setclassid6 adapter [classid] ]
APR命令
地址解析協(xié)議(英語: ,縮寫:ARP)是一個通過解析網(wǎng)絡層地址來找尋數(shù)據(jù)鏈路層地址的網(wǎng)絡傳輸協(xié)議,簡而言之就是靠IP找MAC
命令 arp可以顯示和修改地址解析協(xié)議(ARP)使用的“IP 到物理”地址轉(zhuǎn)換表
ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] [-v]
arp -s 157.55.85.212 00-aa-00-62-c6-09 #添加靜態(tài)項 arp -a #顯示 ARP 表
條件判斷語句 一般形式
if 條件表達式 (語句1) else if (語句) ... else (語句2)
第一種寫法:最簡單,就是寫一行
@echo off set v=zz if %v%==zzp (echo ok) else (echo no) pause>nul
第二種寫法:可讀性好的語法是分行寫
注意:結(jié)構(gòu)一定要嚴格遵守,分行后else要與右括號 )對其并有一個空格
@echo off set v=zz if %v%==zzp ( echo ok ) else ( echo no ) pause>nul
第三種寫法:可讀性好的語法是分行寫的加強版
if 語句與左括號 ( 同行,右括號 ) 不與 else if 同行,右括號 ) 后面加上續(xù)行操作符 ^
@echo off set v=zz if %v%==zzp ( echo ok )^ else ( echo no ) pause>nul
操作數(shù)可以是字符串也可以是數(shù)值,同時還可以是變量;在命令擴展下支持的比較運算符有:"equ(等于)"、"neq(不等于)"、"lss(小于)"、"leq(小于等于)"、"gtr(大于)"、"geq(大于等于)"六種,其中"lss"、"leq"、"gtr"和"geq"四種比較操作符主要用于對數(shù)值進行比較,當參與比較的字符串是字符串時,將被轉(zhuǎn)換為對于的ASCII碼進行比較;而"equ"和"neq"既可以比較數(shù)值也可以比較字符串
用途
判斷驅(qū)動器、文件或文件夾是否存在,用 if exist 語句;
判斷某兩個字符串是否相等,用 if "字符串1"=="字符串2" 語句;
判斷某兩個數(shù)值是否相等,用 if 數(shù)值1 equ 數(shù)值2 語句;
判斷某個變量是否已經(jīng)被賦值,用 if str 語句;
循環(huán)結(jié)構(gòu) 基本語法
for [參數(shù)] %%變量名 in (匹配符) do (執(zhí)行的命令)
注:必須嚴格遵守語法,空格不能少
參數(shù)
/d, /r, /l, /f,加上無參數(shù),所以一共五種
示例
for %%i in (*) do ( echo %%i ) for %%i in (c:\softwares\VisualBat\*.txt) do ( echo %%i ) for /d %%i in (*) do ( echo %%i ) for /r c:\softwares\ %%i in (*.url) do ( echo %%i ) #參數(shù)可結(jié)合使用,/d 表示遍歷文件夾,/r 表示深度遍歷,因此以上命令作用為深度遍歷當前目錄下的所有文件夾 for /d /r %%i in (*) do ( echo %%i )
GOTU語句
goto是個跳轉(zhuǎn)命令,緊跟其之后的是標簽名;冒號是一個標簽標志,緊跟其之后的是標簽名,兩者合稱標簽
gotu:標簽 :標簽
注意事項:
一一對應。goto語句與標簽要相互對應。不允許只有g(shù)oto語句而沒有相應的標簽段,否則,程序?qū)⒄也坏较鄳臉撕灦味苯油顺觯恢挥袠撕灦味鴽]有g(shù)oto語句是允許的,但不能實現(xiàn)流程跳轉(zhuǎn)功能,從代碼精簡的角度來看,有標簽段而沒有g(shù)oto語句,則此標簽是多余的,可以減去
多個標簽。若有多個標簽段,則需要注意標簽段之間是否需要添加恰當?shù)耐顺稣Z句來終止程序繼續(xù)向下執(zhí)行,這是很多新手很容易犯錯的地方,需要謹慎
標簽名只可以使用常量,而不能使用變量