Windows cmd 命令教程大全之小白的學(xué)習(xí)之路
Windows cmd 命令教程大全,內(nèi)容分為上下和結(jié)尾,上部分起提示和幫助記憶命令名及功能,下部分比較詳細(xì)適合小白和其他需要了解更多的人,最后部分有相關(guān)快捷鍵和官方網(wǎng)站方便詳細(xì)了解更多命令和用法
#命令可以組合使用,不要局限單個(gè)命令的使用,每個(gè)參數(shù)有對(duì)應(yīng)的功效
#這里這里列出名字和功能說(shuō)明,方便查詢,重點(diǎn)在最下面有詳細(xì)介紹使用方法及擴(kuò)展使用,是我經(jīng)驗(yàn)總結(jié),有些是我遇到了相關(guān)問(wèn)題,找前輩請(qǐng)教來(lái)的,認(rèn)真閱讀你一定有所收獲

cmd常用命令及功能基礎(chǔ)介紹
dir? ? ? ? ? ? ? ? ??????顯示一個(gè)目錄中的文件和子目錄
tree ? ? ???????????????以樹形圖的方式顯示,不帶參數(shù)顯示目錄
cd? ? ? ? ? ? ? ? ????????切換路徑
pushd ? ? ? ?????? ?保存目錄以供 popd 命令使用,然后進(jìn)入到指定的目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這個(gè)命令在cd的命令的基礎(chǔ)上添加了保存,方便在不同地址間跳轉(zhuǎn)
popd? ? ? ? ? ? ? ???? 回到 pause 保存的位置
md?? ? ? ? ? ? ? ? ? ? ??創(chuàng)建目錄
mkdir? ? ? ? ? ? ? ???? 為同一個(gè)命令,只是名字不同
rd? ? ? ? ? ? ? ? ? ? ? ? ? 刪除目錄
rmdir?? ? ? ? ? ? ? ? ? ?為同一個(gè)命令,只是名字不同
del?? ? ? ? ? ? ? ? ? ? ? ? 刪除文件
erase? ? ? ? ? ? ? ? ? ?為同一個(gè)命令,只是名字不同
copy? ? ? ? ? ? ? ? ? ? ?? 復(fù)制文件或目錄
xcopy? ? ? ? ? ? ? ? ? ?? 復(fù)制文件或目錄可以理解為是加強(qiáng)版復(fù)制
robocopy? ? ? ? ? ? ? 復(fù)制文件或目錄的高級(jí)實(shí)用工具
move? ? ? ? ? ? ? ? ? ? ?移動(dòng)文件或目錄,如果目錄不存在則改名
replace? ? ? ? ? ? ? ??替換文件
ren?? ? ? ? ? ? ? ? ? ? ? ? 重命名文件
:: ? ? ????????????????????? ? ?用來(lái)注釋內(nèi)容,注釋后的信息不會(huì)被執(zhí)行
rem? ? ? ? ? ? ? ? ? ? ? ? 注釋內(nèi)容,和上面有點(diǎn)區(qū)別,bat執(zhí)行時(shí)這個(gè)會(huì)顯示注釋內(nèi)容
pause? ? ? ? ? ? ? ? ? ? 暫停并顯示消息,bat內(nèi)可以看到效果
find? ? ? ? ? ? ? ? ? ? ? ? ?在文本文件中搜索文本字符串
findstr? ? ? ? ? ? ? ?功能加強(qiáng),用法一樣
start? ? ? ? ? ? ? ?啟動(dòng)或是打開, 啟動(dòng)單獨(dú)的窗口以運(yùn)行指定的程序或命令
echo? ? ? ? ? ? ? ?打印內(nèi)容
type? ? ? ? ? ? ? ?顯示文本文件內(nèi)全部?jī)?nèi)容
cls? ? ? ? ? ? ? ? ??清除屏幕
date /t? ? ? ? ? ? ? ? ? ?顯示或設(shè)置日期
time /t? ? ? ? ? ? ? ? ?? 顯示或設(shè)置系統(tǒng)時(shí)間
exit? ? ? ? ? ? ? ? ?退出程序
:1 ? ?????????????????? ? ?:為標(biāo)簽,注意標(biāo)簽必須在單獨(dú)的一行,后面的文字自己定
goto? ? ? ? ? ? ? ? 跳轉(zhuǎn)到標(biāo)簽行
path? ? ? ? ? ? ? ??顯示path環(huán)境變量值
set? ? ? ? ? ? ? ? ? 顯示、設(shè)置或刪除 環(huán)境變量
setx? ? ? ? ? ? ? ? ?顯示、設(shè)置或刪除 Windows 環(huán)境變量,值會(huì)被系統(tǒng)保留
if? ? ? ? ? ? ? ? ? ? ?條件判斷
if not ????? ? ? ? ?? 條件相反
if defined ???????????? 環(huán)境變量判斷
if exist ????? ? ? ? ? ? ?? 文件判斷
if errorlevel ????? 運(yùn)行結(jié)果判斷
if 字符串1==字符串2? 字符串判斷
for? ? ? ? ? ? ???????????????? 循環(huán)
title? ? ? ? ????????????????? 設(shè)置 cmd 會(huì)話的窗口標(biāo)題
color ? ? ??????????? ?設(shè)置 cmd 窗口顏色
mode?????????????????????設(shè)置窗口大小
call? ? ? ? ? ? ???????調(diào)用另一個(gè)批處理程序
assoc? ? ? ? ? ? ? 顯示或修改文件擴(kuò)展名關(guān)聯(lián)
ftype? ? ? ? ? ? ? ?顯示或修改在文件擴(kuò)展名關(guān)聯(lián)中使用的文件類型
attrib? ? ? ? ? ? ? ?顯示或更改文件屬性
comp? ? ? ? ? ? ?? 文件內(nèi)容對(duì)比
fc? ? ? ? ? ? ? ? ? ??文件內(nèi)容對(duì)比,顯示它們之間的不同
taskmgr? ? ? ? ? ?打開任務(wù)管理器
tasklist? ? ? ? ? ? ?顯示包括服務(wù)在內(nèi)的所有當(dāng)前運(yùn)行的任務(wù)(顯示運(yùn)行程序)
taskkill? ? ? ? ? ? ?中止或停止正在運(yùn)行的進(jìn)程或應(yīng)用程序(結(jié)束運(yùn)行程序)
ipconfig? ? ? ? ? ?顯示網(wǎng)絡(luò)配置信息
netstat? ? ? ? ? ??網(wǎng)絡(luò)管理查tcp/ip連接(可以查軟件進(jìn)程id)
shutdown? ? ? ??關(guān)閉計(jì)算機(jī)
bcdedit? ? ? ? ? ?設(shè)置啟動(dòng)數(shù)據(jù)庫(kù)中的屬性以控制啟動(dòng)加載, 啟動(dòng)引導(dǎo)編輯BCD
reg????????????? ???注冊(cè)表
reg add????????? ? 添加注冊(cè)表
reg query?????? ? 查看注冊(cè)表
reg delete????????? ?刪除注冊(cè)表
reg copy????? ? ? ? 復(fù)制注冊(cè)表
cacls? ? ? ? ? ? ? ?顯示或修改文件的訪問(wèn)控制列表(ACL)
icacls? ? ? ? ? ? ? ?顯示、修改、備份或還原文件和目錄的 ACL
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 和上面相同,推薦選擇這個(gè),管理目錄訪問(wèn)權(quán)限相關(guān)功能,對(duì)應(yīng)目錄屬性的安全設(shè)置
chcp? ? ? ? ? ? ? ??顯示或設(shè)置活動(dòng)代碼頁(yè)數(shù)
chkdsk? ? ? ? ? ? ?檢查磁盤并顯示狀態(tài)報(bào)告
chkntfs? ? ? ? ? ? ?顯示或修改啟動(dòng)時(shí)間磁盤檢查
compact? ? ? ? ? ?顯示或更改 NTFS 分區(qū)上文件的壓縮
convert? ? ? ? ? ? ?將 FAT 卷轉(zhuǎn)換成 NTFS你不能轉(zhuǎn)換當(dāng)前驅(qū)動(dòng)器
diskpart? ? ? ? ? ? ?顯示或配置磁盤分區(qū)屬性
driverquery? ? ? ? 顯示當(dāng)前設(shè)備驅(qū)動(dòng)程序狀態(tài)和屬性
subst? ? ? ? ? ? ? ? ?將路徑與驅(qū)動(dòng)器號(hào)關(guān)聯(lián)(VHD(x)磁盤卸載)
format? ? ? ? ? ? ? ?格式化磁盤,以便用于 Windows
label? ? ? ? ? ? ? ? ??創(chuàng)建、更改或刪除磁盤的卷標(biāo)
chkdsk? ? ? ? ? ? ??磁盤修復(fù)
sfc????????????????? ??掃描所有保護(hù)的系統(tǒng)文件的完整性
defrag? ? ? ? ? ? ? ?磁盤碎片整理
recover? ? ? ? ? ? ??從損壞的或有缺陷的磁盤中恢復(fù)可讀信息?
doskey? ? ? ? ? ? ? 編輯命令行、撤回 Windows 命令并創(chuàng)建宏
setlocal? ? ? ? ? ? ? 開始本地化批處理文件中的環(huán)境更改
endlocal? ? ? ? ? ? ?結(jié)束批文件中環(huán)境更改的本地化
runas ????????? ? ? ? 管理員權(quán)限設(shè)置
fsutil? ? ? ? ? ? ? ? ? 顯示或配置文件系統(tǒng)屬性
gpresult? ? ? ? ? ? ?顯示計(jì)算機(jī)或用戶的組策略信息
graftabl? ? ? ? ? ? ?使 Windows 在圖形模式下顯示擴(kuò)展字符集
mklink? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建符號(hào)鏈接和硬鏈接(類似快捷方式)
mode? ? ? ? ? ? ? ? 配置系統(tǒng)設(shè)備
more? ? ? ? ? ? ? ??逐屏顯示輸出
openfiles? ? ? ? ? ?顯示遠(yuǎn)程用戶為了文件共享而打開的文件
print? ? ? ? ? ? ? ? ?連打印機(jī)打印文件
prompt? ? ? ? ? ? ?更改 cmd.exe 命令提示符
shift? ? ? ? ? ? ? ? ??調(diào)整批處理文件中可替換參數(shù)的位置
systeminfo? ? ? ? ?顯示計(jì)算機(jī)操作系統(tǒng)配置的信息
sc? ? ? ? ? ? ? ? ? ? ??顯示或配置服務(wù)(后臺(tái)進(jìn)程)
schtasks? ? ? ? ? ??安排在一臺(tái)計(jì)算機(jī)上運(yùn)行命令和程序(計(jì)劃任務(wù))
ver? ? ? ? ? ? ? ? ? ??顯示 Windows 的版本
verify? ? ? ? ? ? ? ? ?告訴 Windows 是否進(jìn)行驗(yàn)證,以確保文件正確寫入磁盤
vol? ? ? ? ? ? ????? ? ?顯示磁盤卷標(biāo)和序列號(hào)
wmic? ? ? ? ? ? ? ? ??在交互式命令 shell 中顯示 WMI 信息
%errorlevel% ????????返回上一個(gè)命令執(zhí)行結(jié)果值,0表示成功

-----基礎(chǔ)重點(diǎn)-----
cmd窗口打開方法
右擊任務(wù)欄win圖標(biāo)--運(yùn)行--輸入--cmd 回車(或按windows鍵和R鍵彈出運(yùn)行框—輸入cmd回車)
管理員打開cmd:按windows鍵和R鍵彈出運(yùn)行框—輸入cmd回車 再按 Ctrl+Shift+Enter
bat文件新建方法
桌面右擊--新建--文本文檔--文件后綴重命名為.bat
cmd命令不區(qū)分大小寫,cmd命令可在cmd窗口和bat文件內(nèi)使用
cmd窗口中輸入命令名字加 /? 可獲取幫助信息
/? 為英文字符,cmd命令中符號(hào)全部為英文
cmd命令中 路徑符號(hào) “\” ,參數(shù)符 “/”,和linux不同
路徑中存在空格一定要加 " " , 雙引號(hào)表示是一個(gè)整體,空格一般被解釋為分割
cmd命令寫法常見(jiàn)格式
命令 【參數(shù)】【地址】
【參數(shù)】 參數(shù)根據(jù)命令決定,可帶可不帶
【地址】 指的不全部都是地址,根據(jù)命令決定
這里稱之為地址,方便小白理解
文本中提到的【目錄】就是【文件夾】,在命令窗里稱之為目錄,資源管理器里稱之為文件夾,是同一個(gè)東西,擔(dān)心小白可能不了解,在里說(shuō)明一下
文件和目錄可以直接拖入cmd窗口來(lái)傳入地址信息
cmd命令詳細(xì)講解,建議小白認(rèn)真閱讀,會(huì)對(duì)你有所幫助
cmd命令寫法格式
dir /s? ? ? ? ? ? ????????????????顯示當(dāng)前目錄和所有子目錄中的文件
dir /s /a:d ? ? ????????? ? 可這樣寫
dir /s /ad ? ? ????????? ? ? 也可以這樣寫
dir /s/ad ? ? ????????????? ? ?還可以這樣,我用的這個(gè),方便
dir/s ????????????????????????? ? ? 這種寫法不規(guī)范,建議只用于看幫助信息時(shí)使用
????????????????????????????????????????建議使用前幾種標(biāo)準(zhǔn)格式,養(yǎng)成習(xí)慣
cmd /k? ? ? ? ? ??????cmd是解釋器,同時(shí)也是命令,帶參數(shù)
dir? ? ? ? ? ? ? ? ????? ?顯示一個(gè)目錄中的文件和子目錄
/s ? ? ? ????????????????????? ? ? ? 顯示目錄及所有目錄中文件名字
/b ? ? ? ????????????????? ? ? ? ? ? 只顯示文件和目錄名字,不顯示其他信息
/a ? ? ????????????????????????? ? ?顯示有屬性的文件,如:隱藏文件、目錄、只讀文件
- ? ? ????????????????????????????? ? ?效果相反,這里指的/a 參數(shù)效果反轉(zhuǎn)
用法
dir /s/b C:\Users?? 顯示C:\Users盤所有目錄和文件的名字“C:\Users 表示地址”
dir /ad ? ? ????????????????? ? ?只顯示目錄
dir /a-d ? ? ????????????????????不顯示目錄
tree ? ? ????????????????以樹形圖的方式顯示,不帶參數(shù)顯示目錄
/f ? ? ????????????????????????? ? ? ? 顯示目錄和文件名字
? ? ????????????????????????????????? ? 用法和dir相同
cd? ? ? ? ? ? ? ? ????????????????? ?切換路徑
cd? ? ? ? ? ? ? ? ????????????? ? ?沒(méi)有指定地址,顯示當(dāng)前所在目錄
/d ? ? ?????????????????????????????同時(shí)切換盤符和目錄
用法
cd c: ? ? ????????????????? ? ? ? 進(jìn)入到C盤目錄
pushd ? ? ? ???????????????????保存目錄以供 popd 命令使用,然后進(jìn)入到指定的目錄
? ? ? ????????????????????????????? ? ? 這個(gè)命令在cd的命令的基礎(chǔ)上添加了保存,方便在不同地址間跳轉(zhuǎn)
popd? ? ? ? ? ? ????????????????回到 pause 保存的位置
用法
pushd C:\Users? ? ? 保存當(dāng)前所在路徑后進(jìn)入指定路徑“C:\Users”
popd ? ? ????????? ? ??? 回到pushd保存的路徑
md? ? ? ? ? ? ? ? ????? ???創(chuàng)建目錄
mkdir? ? ? ? ? ? ? ? ? ???為同一個(gè)命令,只是名字不同
用法
md 123 ? ? ????????????????? ? 命令加名字,可以是目錄地址
md c:\123 ? ? ????????????????在c盤下創(chuàng)建名為123的目錄
rd? ? ? ? ? ? ? ? ?????? ? ????刪除目錄
rmdir? ? ? ? ? ? ???????? ? ?為同一個(gè)命令,只是名字不同
/s ? ? ? ? ????????????????????????? ? ?刪除目錄及目錄內(nèi)的所有文件
? ? ????????????????????????????????? ? ? ?目錄內(nèi)有文件必須帶/s 參數(shù)才能刪
/q ? ? ????????????????????? ? ? ? ? ? 不提示直接刪除
用法
rd 123 ? ? ????????????????? ? ? ? 命令加名字,可以是目錄地址
del? ? ? ? ? ? ? ? ?????????????????? ? 刪除文件? ? ? ? ??
erase ? ? ????????? ?????? ?為同一個(gè)命令,只是名字不同
/q ? ? ????????????????????? ????? ? ? ?不提示直接刪除
用法
del 123.txt ? ? ???????????????命令加名字,可以是文件地址
del 123.txt 456.txt? 可以同時(shí)刪除多個(gè)文件
copy? ? ? ? ? ? ? ?????????????????復(fù)制文件或目錄
xcopy? ? ? ? ? ? ? ??????????????復(fù)制文件或目錄可以理解為是加強(qiáng)版復(fù)制
robocopy? ? ? ? ? ? ? ? ?? ? 復(fù)制文件或目錄的高級(jí)實(shí)用工具
用法
copyc:\123.txt d:\234????把c盤文件123復(fù)制到d盤234目錄下
????????????????????????????????????????????????????第一個(gè)地址為要復(fù)制的文件,第二個(gè)為要存放的目錄
move? ? ? ? ? ? ? ????????????????????? ? ? 移動(dòng)文件或目錄,如果目錄不存在則改名
用法
move?c:\123 c:\234? ????? ? 把c盤文件123移動(dòng)到c盤234目錄下
move c:\123 c:\234? ???????如果沒(méi)有234目錄,將改名為234
????????????????????????????????????????????? ??第一個(gè)地址為要移動(dòng)的文件,第二個(gè)為存要放的目錄
replace? ? ? ? ? ? ??????????替換文件
ren? ? ? ? ? ? ? ? ????????? ? ?重命名文件
rename? ? ? ? ? ? ????????? 為同一個(gè)命令,只是名字不同
用法
ren 123 abc ? ? ???????????????? 重命名為abc
renc:\123 abc ????????????? ?? 第一個(gè)可以為文件地址名,第二個(gè)必須是文件名
:: ? ? ????????????????????????????????????? ?用來(lái)注釋內(nèi)容,注釋后的信息不會(huì)被執(zhí)行
rem? ? ? ? ? ? ? ? ??????????????????????注釋內(nèi)容,和上面有點(diǎn)區(qū)別,bat執(zhí)行時(shí)這個(gè)會(huì)顯示注釋內(nèi)容
用法
::今天天氣真好 這個(gè)信息只有在文件里才能看到
pause? ? ? ? ? ? ? ????? ? ??暫停并顯示消息,bat內(nèi)可以看到效果?
用法
pause ? ? ? ????????? ? ? ? ? ?? 寫在哪停哪
pause>nul ????????????????? ? ? ? 不顯示暫停提示消息
find? ? ? ? ? ? ? ???????????? 在文本文件中搜索文本字符串
findstr ? ? ? ????????????????功能加強(qiáng),用法一樣
用法
find? "abc"? c:\test.txt?????在test.txt文件中搜索字符串 abc
? ? ? ? ? ? ? ? ? ???????????????????????????????搜索的內(nèi)容需要引號(hào)引起
start ? ? ????????????????????? ?啟動(dòng)或是打開, 啟動(dòng)單獨(dú)的窗口以運(yùn)行指定的程序或命令
/min? ? ? ? ?????????????????????????? ? ? 以最小化方式啟動(dòng)窗口
/max? ? ? ?????????????????? ? ? ? ? ?? ? 以最大化方式啟動(dòng)窗口
用法
start cmd ? ? ????????????????????? ?啟動(dòng)cmd窗口
start c:\test.txt
start c:\123 ????????? ? ??? ?可以是文件或目錄
知識(shí)擴(kuò)展
start 1 2 3? ? ? ????????????????? ?文件名帶空隔,需要注意
start "1 2 3" ? ? ????????????????加了雙引號(hào)還是無(wú)法啟動(dòng),cmd窗口名字發(fā)生改變
start? ""? "1 2 3" ????? ? ??只需要在中間加一對(duì)雙引號(hào),即可正常啟動(dòng),注意中間的空格
start "C:\12" 1.txt ????? ? ?可以寫成文件地址加文件名
echo ? ? ????????????????? ? ??打印內(nèi)容
用法
@echo off? ? ? ? ? ????????????? 關(guān)閉回顯即輸入的內(nèi)容,很常用
@echo????????????????????????????????關(guān)閉單行回顯
echo? 123? ? ? ? ? ??????? ? echo 后面的文字都會(huì)被打印
知識(shí)拓展
echo %cd%? echo ??????可以打印變量值,這個(gè)將打印出當(dāng)前命令窗口所在的路徑
echo= ? ? ????????????????????????????? 打印空行,方法共計(jì)有12中方法左右
echo, ? ? ????????????????????????? ? 這前三種為最佳,根據(jù)自己喜歡的來(lái)
echo;
echo.
type? ? ? ? ??????????????????顯示文本文件內(nèi)全部?jī)?nèi)容
sort? ? ? ? ? ? ?????????? ? ?對(duì)文件內(nèi)容排序,對(duì)比type看效果
? ? ????????????????????????????????????????排序后的內(nèi)容,只顯示不會(huì)改變文件本來(lái)內(nèi)容
用法
type 1.txt????????????? ? ??在桌面新建一個(gè)名為1.txt文件里面隨便寫一些信息
sort 1.txt????????
date? ? ? ? ? ? ? ????????? ? 顯示或設(shè)置日期
time ? ? ? ? ? ? ????????? ???顯示或設(shè)置系統(tǒng)時(shí)間
/t ????????????????????? ? ? ? ? 顯示時(shí)間,不帶參數(shù)為修改時(shí)間
用法
echo %date%???????????echo打印時(shí)需要添加%%,否則只會(huì)打印date字符串
echo?%time%? ? ???????同理
date /t
time /t
exit? ? ? ? ? ? ? ????????? ? 退出程序
exit?/b???????????????????????????????退出當(dāng)前批處理腳本而不是退出cmd.exe程序,在腳本外運(yùn)行則退出cmd.exe程序
:1 ? ? ????????????????????? :為標(biāo)簽,注意標(biāo)簽必須在單獨(dú)的一行,后面的文字自己定
goto? ? ? ? ? ? ??????????? 跳轉(zhuǎn)到標(biāo)簽行
用法
goto?1 ????????????????????? ? ? ? ?? 先標(biāo)注標(biāo)簽,再啟動(dòng)跳轉(zhuǎn)
path? ? ? ? ? ? ? ????? ? ? 顯示path環(huán)境變量值
path ?????????????????????? 為搜索環(huán)境的變量,文件路徑添加進(jìn)去,win+r 可直接進(jìn)行搜索
在cmd下開啟或延遲環(huán)境變量用/v參數(shù):
cmd /v:on? ? ????????????????? 開啟延遲環(huán)境變量
cmd /v:off? ?????????? ? ? ? ? 關(guān)閉延遲環(huán)境變量
在批處理中開啟或關(guān)閉延遲環(huán)境變量用setlocal命令:延時(shí)變量, 使變量值賦值延遲
setlocal EnableDelayedExpansion? ? //開啟延遲環(huán)境變量
setlocal DisableDelayedExpansion? ?//關(guān)閉延遲環(huán)境變量

----- set -----
建議先對(duì)set有基本的了解在看if和for
set 是cmd最重要的命令之一
set? ? ? ? ? ? ? ? ????????????顯示、設(shè)置或刪除 環(huán)境變量
setx? ? ? ? ? ? ? ? ??????????顯示、設(shè)置或刪除 Windows 環(huán)境變量,值會(huì)被系統(tǒng)保留
用法
set 變量名=變量值
set var=123 ? ? ????????????? ? ?設(shè)置臨時(shí)變量var值為123
set /p var=? ? ? ? ????????????? ? 手動(dòng)輸入變量值
set/a 1+2 ? ? ????????????????? ? ?可做算術(shù)運(yùn)算
setx var 123 ????????????????? ? ?添加添加環(huán)境變量到系統(tǒng)用戶變量
setx /m var 123 ???????????????添加添加環(huán)境變量到系統(tǒng)變量
知識(shí)擴(kuò)展
set var="%var%;123" ????保留原本var的值再添加新的值123
setx var "%var%;123"???可以為系統(tǒng)用戶添加環(huán)境變量
變量增值 方法一
setlocal enabledelayedexpansion
set a=0 ???????????????????? 這兩個(gè)命令放在一起,可省去,如果不在一起a=0可以影響a+=1的變化
set /a a+=1 ????????????????????? 在for命令中使用可以明顯看到變化,我會(huì)將它放到案例中
方法二
set /a a+=1 ????????????????? ? ? 每執(zhí)行一次這個(gè)變量a,a的數(shù)值會(huì)增加1
·延時(shí)變量案例
setlocal enabledelayedexpansion
set var=123 ????????????????? ?? 不使用變量的第一個(gè)值,使用變量的最后一個(gè)變量值
set var+=1 ????????????? ? 延時(shí)變量引用符為!!
echo %var% !var! ????????打印出來(lái)的結(jié)果會(huì)不同,需要自行感受才會(huì)明白
----變量值替換----
字符串替換語(yǔ)法格式:%path:str1=str2%
解釋:%看作為變量整體,path為變量名,冒號(hào)用于分隔變量名,后面為操作部分。將path變量中的str1替換為str2,str1為要替換的值,str2為被替換的值
·變量值替換案例
方法1
set a=123123123
echo 替換前的值: "%a%"
set var=%a:3=6%
echo 替換后的值: "%var%"
pause
方法2
set a=12342332
echo 替換前的值: %a%
echo 替換后的值: %a:2=5%
pause
----變量值截取----
字符串截取語(yǔ)法格式:%path:~x[,y]%
解釋:%看作為變量整體,path為變量名,冒號(hào)用于分隔變量名,后面為操作部分,符號(hào)~可以簡(jiǎn)單理解為“偏移”,x為偏移量(缺省為0),y為截取長(zhǎng)度(缺省為全部),x,y可為負(fù)數(shù)表示倒數(shù)
·變量值截取案例
%a:~x%,%a:~x,-y%,%a:~x,y%,%a:~-x%,%a:~0,y%
set a=abcdefg
set var=%a:~0,5%
echo %var%
pause

---- if ----
if 是cmd最重要的命令之一
if語(yǔ)法格式:
字符串判斷格式 if [參數(shù)] string1==string2 command?
字符串判斷格式 if [參數(shù)] string1==string2 (command) else (echo 不相等)?
文件判斷格式? ?if [參數(shù)] exist abc command
[參數(shù)] 可有可無(wú)。command 為條件成立時(shí)需要執(zhí)行的命令。else 條件不成立時(shí)需要執(zhí)行的命令,可有可無(wú)
if? ? ? ? ? ? ? ?????????????? 條件判斷
if not ??????????????????????? ?條件相反
if defined ????????????? ? ? 環(huán)境變量判斷
if exist ????????????????????? 文件判斷
if errorlevel ????????? ? ?? 運(yùn)行結(jié)果判斷
if 字符串1==字符串2? ?字符串判斷
用法
if 字符串1==字符串2 (echo 是) else (echo 不是)
if 1==2 (echo 是) else (echo 不是)?????????判斷1是否等于2,等于顯示是,不等于顯示不是
if not 1==2 (echo 不是) else (echo 是)????條件相反
if 2==2 (echo 是) ?????????????????????????????????可以這樣寫,條件成立顯示是,不成立啥也不干
if exist 123(echo 文件存在) else (echo 文件不存在)
命令defined,exist,errorlevel寫法相同
set a=123
if %a%==123 if的判斷值可為變量,左右兩邊都可是變量
知識(shí)擴(kuò)展
多次判斷
set /p va=輸入數(shù)字
if %va% gtr 50 (echo 大于50) else (if %va% equ 50 (echo 等于50) else (if %va% lss 50 echo 小于50) )
pause
雙重判斷
if 1==1 (if 2==2 echo ok)
if 1==1 (if 2==3 echo ok)

for 是cmd最重要的命令之一
for語(yǔ)法格式:for [參數(shù)] %%i in (set) do (command)
for in do 必須有,位置不變
[參數(shù)] 可選,帶參數(shù)功能更強(qiáng)大
%%i ???? ???????????????????????? 為“a-z”26個(gè)字母中的任意一個(gè)單一字母,區(qū)分大小寫
%%i????????????????? ? ? 為bat批處理寫法,cmd窗口里用%i
set ????????????????????????????? ?? 指定文件,可以為通配符
command ????????????? ? ?? 指定對(duì)每個(gè)文件執(zhí)行的命令
----
for? ? ? ? ? ? ????????????????? ?? 為一組文件中的每個(gè)文件運(yùn)行一個(gè)指定的命令
/f ????????????????????? ?? ?可針對(duì)“文本” “字符串” “命令”,功能最強(qiáng)大
/d ??????????????????????? ?只讀取目錄
/r ?????????????????????????????????? 讀取目錄及目錄下所以文件
/l ?????????????????????? ? ??只針對(duì)數(shù)字
用法
cmd窗口運(yùn)行for時(shí)將%%i改為%i
for /f %%i in (1.txt) do (echo %%i)&&echo 打印1.txt文件每行信息
for /d %%i in (*) do (echo %%i)&&echo 打印當(dāng)前文件夾下所有文件夾
for /l %%i in (1,1,20) do (echo %%i)&&echo 打印1到20
for /r %%i in (*.txt) do (echo %%i)&&echo 打印當(dāng)前文件夾及文件夾下的所有txt文件
知識(shí)擴(kuò)展
for /F ["options"] %%i in (file) do command? (為文本)file代表文件,不能加引號(hào),所以不能含有空格
for /F ["options"] %%i?in ("string") do command (“為字符串”)string 代表字符串
for /F ["options"] %%i in ('command') do command?(’為命令‘)command代表命令
for /F "usebackq delims==" %%i in (`set`) do @echo %%i? (`為命令`)注意這個(gè)符號(hào)時(shí)esc下面的按鍵符號(hào)
“usebackq” 目的是解決file文本有空格,啟動(dòng)這個(gè)命令后表示符發(fā)生改變
file 和 "file" 都表示文件
'string' 表示字符串
`command` 表示命令

title? ? ? ? ? ????????????????? 設(shè)置 cmd 會(huì)話的窗口標(biāo)題
color ? ? ????????????????? ?? 設(shè)置 cmd 窗口顏色
mode????????????????????????????????????設(shè)置窗口大小
call? ? ? ? ? ? ????????? ? ? ? 調(diào)用另一個(gè)批處理程序
用法
call c:\1.bat ????????? ? ??啟動(dòng)1.bat,命令加啟動(dòng)程序地址
assoc? ? ? ? ? ????????? ?? 顯示或修改文件擴(kuò)展名關(guān)聯(lián)
ftype? ? ? ? ? ??????????????顯示或修改在文件擴(kuò)展名關(guān)聯(lián)中使用的文件類型
attrib? ? ? ? ????????? ? ? ? 顯示或更改文件屬性
+? ? ???????????????????????? ?設(shè)置屬性
-? ? ????????????????????????? 清除屬性
r? ? ????????????????????????? 只讀文件屬性
h? ? ????????????????????????????????????? 隱藏文件屬性
用法
attrib +h 12.txt? ? ????????設(shè)置文件12為隱藏文件? ? ?
attrib -h 12.txt? ? ????????取消文件12隱藏屬性? ? ?
comp? ? ? ? ? ????????????????????? 文件內(nèi)容對(duì)比
用法
comp?文件1 文件2
fc? ? ? ? ? ? ????????????????????????? ?? 文件內(nèi)容對(duì)比,顯示它們之間的不同
用法
fc 文件1 文件2?
taskkill? ? ? ? ????????????????? ? ? 中止或停止正在運(yùn)行的進(jìn)程或應(yīng)用程序(結(jié)束運(yùn)行程序)
/im ? ????????????????????????????? ? ? ?結(jié)束進(jìn)程
/f ? ??????????????????????????????????????強(qiáng)制終止進(jìn)程
用法
taskkill /im qq.exe??
ipconfig? ? ????????????? ?顯示網(wǎng)絡(luò)配置信息
/all? ? ? ? ? ? ? ????????????????? ?顯示完整配置信息
用法
ipconfig?/all
shutdown? ? ? ???????????????? 關(guān)閉計(jì)算機(jī)
/s? ? ? ? ? ????????????????????????? ?? 關(guān)閉計(jì)算機(jī)
/r? ? ? ? ? ????????????????????????? ? ?? 完全關(guān)閉并重啟計(jì)算機(jī)
/t ????????????????????????????????????? ? 指定時(shí)間
/a? ? ? ? ? ????????????????????????? ?? 中止系統(tǒng)關(guān)閉
用法
shutdown /s/t 60 ??????60秒后關(guān)機(jī),/t時(shí)間是按秒計(jì)算

cmd窗口命令鍵
ESC ???? 清除當(dāng)前命令行內(nèi)容
F7 ?????? ? 顯示命令歷史記錄,以圖形窗口的方式顯示曾經(jīng)輸入的命令,可選擇再次執(zhí)行該命令
F8 或 上下方向鍵? ?搜索命令的歷史記錄,循環(huán)顯示所有曾經(jīng)輸入的命令,回車確認(rèn)
F9 ????????? ? 按編號(hào)選擇命令,以圖形對(duì)話框方式要求您輸入命令所對(duì)應(yīng)的編號(hào)(從0開始),并將該命令顯示在屏幕上
Ctrl+C? ?強(qiáng)行中止命令執(zhí)行
Alt+F7 ? ?清除所有曾經(jīng)輸入的命令歷史記錄

官方介紹非常詳細(xì),就是不好找
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/windows-commands

相關(guān)教程
Windows cmd 之特殊符號(hào)及變量 - 嗶哩嗶哩 (bilibili.com)
Windows cmd 之快捷運(yùn)行程序名 - 嗶哩嗶哩 (bilibili.com)

網(wǎng)絡(luò)菜鳥愚沐