Windows cmd 命令教程大全之小白的学习之路
Windows cmd 命令教程大全,内容分为上下和结尾,上部分起提示和帮助记忆命令名及功能,下部分比较详细适合小白和其他需要了解更多的人,最后部分有相关快捷键和官方网站方便详细了解更多命令和用法
#命令可以组合使用,不要局限单个命令的使用,每个参数有对应的功效
#这里这里列出名字和功能说明,方便查询,重点在最下面有详细介绍使用方法及扩展使用,是我经验总结,有些是我遇到了相关问题,找前辈请教来的,认真阅读你一定有所收获

cmd常用命令及功能基础介绍
dir 显示一个目录中的文件和子目录
tree 以树形图的方式显示,不带参数显示目录
cd 切换路径
pushd 保存目录以供 popd 命令使用,然后进入到指定的目录
这个命令在cd的命令的基础上添加了保存,方便在不同地址间跳转
popd 回到 pause 保存的位置
md 创建目录
mkdir 为同一个命令,只是名字不同
rd 删除目录
rmdir 为同一个命令,只是名字不同
del 删除文件
erase 为同一个命令,只是名字不同
copy 复制文件或目录
xcopy 复制文件或目录可以理解为是加强版复制
robocopy 复制文件或目录的高级实用工具
move 移动文件或目录,如果目录不存在则改名
replace 替换文件
ren 重命名文件
:: 用来注释内容,注释后的信息不会被执行
rem 注释内容,和上面有点区别,bat执行时这个会显示注释内容
pause 暂停并显示消息,bat内可以看到效果
find 在文本文件中搜索文本字符串
findstr 功能加强,用法一样
start 启动或是打开, 启动单独的窗口以运行指定的程序或命令
echo 打印内容
type 显示文本文件内全部内容
cls 清除屏幕
date /t 显示或设置日期
time /t 显示或设置系统时间
exit 退出程序
:1 :为标签,注意标签必须在单独的一行,后面的文字自己定
goto 跳转到标签行
path 显示path环境变量值
set 显示、设置或删除 环境变量
setx 显示、设置或删除 Windows 环境变量,值会被系统保留
if 条件判断
if not 条件相反
if defined 环境变量判断
if exist 文件判断
if errorlevel 运行结果判断
if 字符串1==字符串2 字符串判断
for 循环
title 设置 cmd 会话的窗口标题
color 设置 cmd 窗口颜色
mode 设置窗口大小
call 调用另一个批处理程序
assoc 显示或修改文件扩展名关联
ftype 显示或修改在文件扩展名关联中使用的文件类型
attrib 显示或更改文件属性
comp 文件内容对比
fc 文件内容对比,显示它们之间的不同
taskmgr 打开任务管理器
tasklist 显示包括服务在内的所有当前运行的任务(显示运行程序)
taskkill 中止或停止正在运行的进程或应用程序(结束运行程序)
ipconfig 显示网络配置信息
netstat 网络管理查tcp/ip连接(可以查软件进程id)
shutdown 关闭计算机
bcdedit 设置启动数据库中的属性以控制启动加载, 启动引导编辑BCD
reg 注册表
reg add 添加注册表
reg query 查看注册表
reg delete 删除注册表
reg copy 复制注册表
cacls 显示或修改文件的访问控制列表(ACL)
icacls 显示、修改、备份或还原文件和目录的 ACL
和上面相同,推荐选择这个,管理目录访问权限相关功能,对应目录属性的安全设置
chcp 显示或设置活动代码页数
chkdsk 检查磁盘并显示状态报告
chkntfs 显示或修改启动时间磁盘检查
compact 显示或更改 NTFS 分区上文件的压缩
convert 将 FAT 卷转换成 NTFS你不能转换当前驱动器
diskpart 显示或配置磁盘分区属性
driverquery 显示当前设备驱动程序状态和属性
subst 将路径与驱动器号关联(VHD(x)磁盘卸载)
format 格式化磁盘,以便用于 Windows
label 创建、更改或删除磁盘的卷标
chkdsk 磁盘修复
sfc 扫描所有保护的系统文件的完整性
defrag 磁盘碎片整理
recover 从损坏的或有缺陷的磁盘中恢复可读信息
doskey 编辑命令行、撤回 Windows 命令并创建宏
setlocal 开始本地化批处理文件中的环境更改
endlocal 结束批文件中环境更改的本地化
runas 管理员权限设置
fsutil 显示或配置文件系统属性
gpresult 显示计算机或用户的组策略信息
graftabl 使 Windows 在图形模式下显示扩展字符集
mklink 创建符号链接和硬链接(类似快捷方式)
mode 配置系统设备
more 逐屏显示输出
openfiles 显示远程用户为了文件共享而打开的文件
print 连打印机打印文件
prompt 更改 cmd.exe 命令提示符
shift 调整批处理文件中可替换参数的位置
systeminfo 显示计算机操作系统配置的信息
sc 显示或配置服务(后台进程)
schtasks 安排在一台计算机上运行命令和程序(计划任务)
ver 显示 Windows 的版本
verify 告诉 Windows 是否进行验证,以确保文件正确写入磁盘
vol 显示磁盘卷标和序列号
wmic 在交互式命令 shell 中显示 WMI 信息
%errorlevel% 返回上一个命令执行结果值,0表示成功

-----基础重点-----
cmd窗口打开方法
右击任务栏win图标--运行--输入--cmd 回车(或按windows键和R键弹出运行框—输入cmd回车)
管理员打开cmd:按windows键和R键弹出运行框—输入cmd回车 再按 Ctrl+Shift+Enter
bat文件新建方法
桌面右击--新建--文本文档--文件后缀重命名为.bat
cmd命令不区分大小写,cmd命令可在cmd窗口和bat文件内使用
cmd窗口中输入命令名字加 /? 可获取帮助信息
/? 为英文字符,cmd命令中符号全部为英文
cmd命令中 路径符号 “\” ,参数符 “/”,和linux不同
路径中存在空格一定要加 " " , 双引号表示是一个整体,空格一般被解释为分割
cmd命令写法常见格式
命令 【参数】【地址】
【参数】 参数根据命令决定,可带可不带
【地址】 指的不全部都是地址,根据命令决定
这里称之为地址,方便小白理解
文本中提到的【目录】就是【文件夹】,在命令窗里称之为目录,资源管理器里称之为文件夹,是同一个东西,担心小白可能不了解,在里说明一下
文件和目录可以直接拖入cmd窗口来传入地址信息
cmd命令详细讲解,建议小白认真阅读,会对你有所帮助
cmd命令写法格式
dir /s 显示当前目录和所有子目录中的文件
dir /s /a:d 可这样写
dir /s /ad 也可以这样写
dir /s/ad 还可以这样,我用的这个,方便
dir/s 这种写法不规范,建议只用于看帮助信息时使用
建议使用前几种标准格式,养成习惯
cmd /k cmd是解释器,同时也是命令,带参数
dir 显示一个目录中的文件和子目录
/s 显示目录及所有目录中文件名字
/b 只显示文件和目录名字,不显示其他信息
/a 显示有属性的文件,如:隐藏文件、目录、只读文件
- 效果相反,这里指的/a 参数效果反转
用法
dir /s/b C:\Users 显示C:\Users盘所有目录和文件的名字“C:\Users 表示地址”
dir /ad 只显示目录
dir /a-d 不显示目录
tree 以树形图的方式显示,不带参数显示目录
/f 显示目录和文件名字
用法和dir相同
cd 切换路径
cd 没有指定地址,显示当前所在目录
/d 同时切换盘符和目录
用法
cd c: 进入到C盘目录
pushd 保存目录以供 popd 命令使用,然后进入到指定的目录
这个命令在cd的命令的基础上添加了保存,方便在不同地址间跳转
popd 回到 pause 保存的位置
用法
pushd C:\Users 保存当前所在路径后进入指定路径“C:\Users”
popd 回到pushd保存的路径
md 创建目录
mkdir 为同一个命令,只是名字不同
用法
md 123 命令加名字,可以是目录地址
md c:\123 在c盘下创建名为123的目录
rd 删除目录
rmdir 为同一个命令,只是名字不同
/s 删除目录及目录内的所有文件
目录内有文件必须带/s 参数才能删
/q 不提示直接删除
用法
rd 123 命令加名字,可以是目录地址
del 删除文件
erase 为同一个命令,只是名字不同
/q 不提示直接删除
用法
del 123.txt 命令加名字,可以是文件地址
del 123.txt 456.txt 可以同时删除多个文件
copy 复制文件或目录
xcopy 复制文件或目录可以理解为是加强版复制
robocopy 复制文件或目录的高级实用工具
用法
copyc:\123.txt d:\234 把c盘文件123复制到d盘234目录下
第一个地址为要复制的文件,第二个为要存放的目录
move 移动文件或目录,如果目录不存在则改名
用法
move c:\123 c:\234 把c盘文件123移动到c盘234目录下
move c:\123 c:\234 如果没有234目录,将改名为234
第一个地址为要移动的文件,第二个为存要放的目录
replace 替换文件
ren 重命名文件
rename 为同一个命令,只是名字不同
用法
ren 123 abc 重命名为abc
renc:\123 abc 第一个可以为文件地址名,第二个必须是文件名
:: 用来注释内容,注释后的信息不会被执行
rem 注释内容,和上面有点区别,bat执行时这个会显示注释内容
用法
::今天天气真好 这个信息只有在文件里才能看到
pause 暂停并显示消息,bat内可以看到效果
用法
pause 写在哪停哪
pause>nul 不显示暂停提示消息
find 在文本文件中搜索文本字符串
findstr 功能加强,用法一样
用法
find "abc" c:\test.txt 在test.txt文件中搜索字符串 abc
搜索的内容需要引号引起
start 启动或是打开, 启动单独的窗口以运行指定的程序或命令
/min 以最小化方式启动窗口
/max 以最大化方式启动窗口
用法
start cmd 启动cmd窗口
start c:\test.txt
start c:\123 可以是文件或目录
知识扩展
start 1 2 3 文件名带空隔,需要注意
start "1 2 3" 加了双引号还是无法启动,cmd窗口名字发生改变
start "" "1 2 3" 只需要在中间加一对双引号,即可正常启动,注意中间的空格
start "C:\12" 1.txt 可以写成文件地址加文件名
echo 打印内容
用法
@echo off 关闭回显即输入的内容,很常用
@echo 关闭单行回显
echo 123 echo 后面的文字都会被打印
知识拓展
echo %cd% echo 可以打印变量值,这个将打印出当前命令窗口所在的路径
echo= 打印空行,方法共计有12中方法左右
echo, 这前三种为最佳,根据自己喜欢的来
echo;
echo.
type 显示文本文件内全部内容
sort 对文件内容排序,对比type看效果
排序后的内容,只显示不会改变文件本来内容
用法
type 1.txt 在桌面新建一个名为1.txt文件里面随便写一些信息
sort 1.txt
date 显示或设置日期
time 显示或设置系统时间
/t 显示时间,不带参数为修改时间
用法
echo %date% echo打印时需要添加%%,否则只会打印date字符串
echo %time% 同理
date /t
time /t
exit 退出程序
exit /b 退出当前批处理脚本而不是退出cmd.exe程序,在脚本外运行则退出cmd.exe程序
:1 :为标签,注意标签必须在单独的一行,后面的文字自己定
goto 跳转到标签行
用法
goto 1 先标注标签,再启动跳转
path 显示path环境变量值
path 为搜索环境的变量,文件路径添加进去,win+r 可直接进行搜索
在cmd下开启或延迟环境变量用/v参数:
cmd /v:on 开启延迟环境变量
cmd /v:off 关闭延迟环境变量
在批处理中开启或关闭延迟环境变量用setlocal命令:延时变量, 使变量值赋值延迟
setlocal EnableDelayedExpansion //开启延迟环境变量
setlocal DisableDelayedExpansion //关闭延迟环境变量

----- set -----
建议先对set有基本的了解在看if和for
set 是cmd最重要的命令之一
set 显示、设置或删除 环境变量
setx 显示、设置或删除 Windows 环境变量,值会被系统保留
用法
set 变量名=变量值
set var=123 设置临时变量var值为123
set /p var= 手动输入变量值
set/a 1+2 可做算术运算
setx var 123 添加添加环境变量到系统用户变量
setx /m var 123 添加添加环境变量到系统变量
知识扩展
set var="%var%;123" 保留原本var的值再添加新的值123
setx var "%var%;123" 可以为系统用户添加环境变量
变量增值 方法一
setlocal enabledelayedexpansion
set a=0 这两个命令放在一起,可省去,如果不在一起a=0可以影响a+=1的变化
set /a a+=1 在for命令中使用可以明显看到变化,我会将它放到案例中
方法二
set /a a+=1 每执行一次这个变量a,a的数值会增加1
·延时变量案例
setlocal enabledelayedexpansion
set var=123 不使用变量的第一个值,使用变量的最后一个变量值
set var+=1 延时变量引用符为!!
echo %var% !var! 打印出来的结果会不同,需要自行感受才会明白
----变量值替换----
字符串替换语法格式:%path:str1=str2%
解释:%看作为变量整体,path为变量名,冒号用于分隔变量名,后面为操作部分。将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
----变量值截取----
字符串截取语法格式:%path:~x[,y]%
解释:%看作为变量整体,path为变量名,冒号用于分隔变量名,后面为操作部分,符号~可以简单理解为“偏移”,x为偏移量(缺省为0),y为截取长度(缺省为全部),x,y可为负数表示倒数
·变量值截取案例
%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语法格式:
字符串判断格式 if [参数] string1==string2 command
字符串判断格式 if [参数] string1==string2 (command) else (echo 不相等)
文件判断格式 if [参数] exist abc command
[参数] 可有可无。command 为条件成立时需要执行的命令。else 条件不成立时需要执行的命令,可有可无
if 条件判断
if not 条件相反
if defined 环境变量判断
if exist 文件判断
if errorlevel 运行结果判断
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的判断值可为变量,左右两边都可是变量
知识扩展
多次判断
set /p va=输入数字
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语法格式:for [参数] %%i in (set) do (command)
for in do 必须有,位置不变
[参数] 可选,带参数功能更强大
%%i 为“a-z”26个字母中的任意一个单一字母,区分大小写
%%i 为bat批处理写法,cmd窗口里用%i
set 指定文件,可以为通配符
command 指定对每个文件执行的命令
----
for 为一组文件中的每个文件运行一个指定的命令
/f 可针对“文本” “字符串” “命令”,功能最强大
/d 只读取目录
/r 读取目录及目录下所以文件
/l 只针对数字
用法
cmd窗口运行for时将%%i改为%i
for /f %%i in (1.txt) do (echo %%i)&&echo 打印1.txt文件每行信息
for /d %%i in (*) do (echo %%i)&&echo 打印当前文件夹下所有文件夹
for /l %%i in (1,1,20) do (echo %%i)&&echo 打印1到20
for /r %%i in (*.txt) do (echo %%i)&&echo 打印当前文件夹及文件夹下的所有txt文件
知识扩展
for /F ["options"] %%i in (file) do command (为文本)file代表文件,不能加引号,所以不能含有空格
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 (`为命令`)注意这个符号时esc下面的按键符号
“usebackq” 目的是解决file文本有空格,启动这个命令后表示符发生改变
file 和 "file" 都表示文件
'string' 表示字符串
`command` 表示命令

title 设置 cmd 会话的窗口标题
color 设置 cmd 窗口颜色
mode 设置窗口大小
call 调用另一个批处理程序
用法
call c:\1.bat 启动1.bat,命令加启动程序地址
assoc 显示或修改文件扩展名关联
ftype 显示或修改在文件扩展名关联中使用的文件类型
attrib 显示或更改文件属性
+ 设置属性
- 清除属性
r 只读文件属性
h 隐藏文件属性
用法
attrib +h 12.txt 设置文件12为隐藏文件
attrib -h 12.txt 取消文件12隐藏属性
comp 文件内容对比
用法
comp 文件1 文件2
fc 文件内容对比,显示它们之间的不同
用法
fc 文件1 文件2
taskkill 中止或停止正在运行的进程或应用程序(结束运行程序)
/im 结束进程
/f 强制终止进程
用法
taskkill /im qq.exe
ipconfig 显示网络配置信息
/all 显示完整配置信息
用法
ipconfig /all
shutdown 关闭计算机
/s 关闭计算机
/r 完全关闭并重启计算机
/t 指定时间
/a 中止系统关闭
用法
shutdown /s/t 60 60秒后关机,/t时间是按秒计算

cmd窗口命令键
ESC 清除当前命令行内容
F7 显示命令历史记录,以图形窗口的方式显示曾经输入的命令,可选择再次执行该命令
F8 或 上下方向键 搜索命令的历史记录,循环显示所有曾经输入的命令,回车确认
F9 按编号选择命令,以图形对话框方式要求您输入命令所对应的编号(从0开始),并将该命令显示在屏幕上
Ctrl+C 强行中止命令执行
Alt+F7 清除所有曾经输入的命令历史记录

官方介绍非常详细,就是不好找
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/windows-commands

相关教程
Windows cmd 之特殊符号及变量 - 哔哩哔哩 (bilibili.com)
Windows cmd 之快捷运行程序名 - 哔哩哔哩 (bilibili.com)

网络菜鸟愚沐