一、什么是 CMD?为什么要学它?
很多人对 Windows 的印象是鼠标点一点就能搞定一切。那 CMD 这个黑色窗口,到底有没有用?
答案是:非常有用,而且某些场景下是唯一选择。
CMD(Command Prompt,命令提示符)是 Windows 系统内置的命令行解释器,本质上是你和操作系统直接对话的一个通道。图形界面(GUI)做的每一个操作,背后都有对应的命令在执行,CMD 只是把这个过程暴露出来,让你可以直接控制。
学 CMD 有几个实际价值:
其一,速度。批量重命名一百个文件,用鼠标要点到手软;一行 CMD 命令,一秒搞定。其二,自动化。把常用操作写成 .bat 批处理脚本,双击运行,省掉重复劳动。其三,维修能力。系统崩溃、蓝屏、驱动损坏,很多时候图形界面都打不开,但进 PE 系统能开 CMD,靠命令把系统救回来。其四,看懂技术文档。开发者教程、运维手册里大量出现 CMD 命令,懂得基础才能看懂、跟上操作。
如何打开 CMD?三种方式都要记住:Win+R 输入 cmd 回车(普通权限);在搜索栏输入 cmd,右键选”以管理员身份运行”(管理员权限,大多数系统操作需要这个);在任意文件夹的地址栏输入 cmd 回车,直接在当前路径打开。
二、网络诊断:五分钟排查断网问题
网络出问题时,大多数人的操作是重启路由器或者联系运营商。但其实用 CMD 做一遍网络诊断,三分钟就能定位问题出在哪一段,省去大量沟通成本。
ping:最基础的网络探针
ping 命令向目标发送数据包,然后等对方回应,从而测量连通性和延迟。
ping www.baidu.com 基础测试
ping -t 8.8.8.8 持续 ping,观察是否间歇性断连
ping -n 20 192.168.1.1 发送 20 个包,统计丢包率
ping -l 1000 目标IP 发送大包,测试带宽承载能力
丢包率超过 5% 就属于异常。延迟(time=)国内一般在 10-50ms 正常,超过 200ms 就体感卡顿明显。
tracert:路由追踪,精准定位卡顿节点
tracert 是 trace route 的缩写,它会探测数据从你的电脑出发,经过每一跳路由器,最终到达目标的完整路径。
tracert www.baidu.com
输出每一行代表一跳,显示该节点的 IP 和延迟。哪一跳突然延迟飙高,或者显示 * * *(超时),问题就出在那段链路上。前几跳是本地路由器,中间是运营商骨干网,末尾几跳是目标服务器侧。
pathping:ping 与 tracert 的合体升级版
这是一个很多人不知道的命令。pathping 先像 tracert 一样探测路由,再向每个节点分别 ping 一段时间,输出每跳的实际丢包率统计,比单纯的 tracert 更准确。
pathping www.baidu.com
稍慢一些,需要等一两分钟,但数据更可靠,特别适合排查”时好时坏”的网络问题。
netstat:看清你的电脑在和谁”说话”
netstat 显示当前所有活跃的网络连接,是排查端口占用和排查可疑网络请求的利器。
netstat -ano 查看所有连接,含 PID(进程 ID)
netstat -ano | findstr ESTABLISHED 只看已建立的连接
netstat -ano | findstr ":8080" 查谁占用了 8080 端口
netstat -b 显示每个连接对应的程序名(需管理员)
拿到占用端口的 PID 后,用 tasklist | findstr PID号 可以查到是哪个程序,再用 taskkill 关掉它。
arp:查看局域网的 IP 与 MAC 对应表
arp -a 查看 ARP 缓存表
arp -d 清空 ARP 缓存(解决部分网络冲突问题)
局域网内出现 IP 冲突、网络被劫持时,arp -a 能帮你检查是否有异常条目。
netsh:网络配置的”万能扳手”
netsh(Network Shell)是 Windows 最强大的网络配置命令,功能极其丰富。
netsh wlan show profiles 查看所有保存过的 WiFi 名称
netsh wlan show profile name="WiFi名" key=clear 查看 WiFi 密码(明文)
netsh interface ip set address "本地连接" static 192.168.1.100 255.255.255.0 192.168.1.1
手动设置静态 IP
netsh interface ip set dns "本地连接" static 8.8.8.8
手动设置 DNS
netsh winsock reset 重置网络协议栈(解决奇怪网络故障的杀手锏)
netsh winsock reset 后需要重启,它能修复大量”网络硬件没问题但就是上不了网”的情况,比重装系统简单一万倍。
三、文件与目录:比资源管理器更高效的操作
xcopy 与 robocopy:真正的文件复制工具
普通的 copy 命令只能复制单个文件。要复制整个目录结构,需要用 xcopy 或更现代的 robocopy。
xcopy C:\源文件夹 D:\目标文件夹 /e /h /i
参数说明:/e 复制所有子目录(含空目录),/h 包含隐藏文件,/i 如果目标不存在则创建目录。
robocopy 是企业级工具,功能更强:
robocopy C:\A D:\B /mir /log:sync.log /xf *.tmp
/mir 镜像模式,目标会和源保持完全一致(会删除目标中多余的文件);/log 把日志写入文件;/xf 排除指定格式的文件。适合做定期备份、文件夹同步,断点续传也不怕。
findstr:CMD 里的文字搜索引擎
findstr 类似 Linux 的 grep,可以在文件中搜索包含特定内容的行。
findstr /i "error" app.log 不区分大小写搜索 error
findstr /s /i "password" C:\*.txt 递归搜索当前目录下所有 txt 文件
netstat -ano | findstr "LISTENING" 结合管道,过滤 netstat 输出
type log.txt | findstr /n "fail" 输出含行号的匹配结果
/i 忽略大小写,/s 搜索子目录,/n 显示行号,/r 支持正则表达式。用 | 管道符配合其他命令,威力倍增。
attrib:文件属性管理
有时文件被设为只读或隐藏,普通方式无法删除或修改,这时 attrib 出马:
attrib +h secret.txt 设为隐藏
attrib -r -h -s C:\*.dll 去掉文件的只读、隐藏、系统属性
attrib -r -h -s /s /d C:\某目录 递归处理整个目录
某些病毒会把文件夹伪装成文件、把文件设为系统属性藏起来,attrib 能把它们还原出来。
fc:文件内容比对
fc file1.txt file2.txt 对比两个文本文件
fc /b image1.jpg image2.jpg 二进制对比
适合检查配置文件有没有被改动、两份文档的差异在哪里。
四、批处理脚本:让 CMD 真正自动化
批处理(Batch)是 CMD 最强大的功能——把一系列命令写进 .bat 文件,一键执行,实现自动化操作。
基础结构
@echo off
REM 这是注释,@echo off 让脚本运行时不显示每条命令本身
set srcDir=C:\Documents
set dstDir=D:\Backup
echo 开始备份...
xcopy %srcDir% %dstDir% /e /h /i /y
echo 备份完成!
pause
@echo off 关闭命令回显,让输出更干净。set 定义变量,用 %变量名% 引用。pause 暂停等待按键,防止窗口一闪而过。
for 循环:批量处理文件
@echo off
for %%i in (C:\Logs\*.log) do (
echo 处理文件:%%i
findstr /i "error" %%i >> error_summary.txt
)
echo 汇总完成,结果在 error_summary.txt
这段脚本把所有 .log 文件中含有”error”的行汇总到一个文件里。在批处理中循环变量用 %%i(命令行中直接用 %i)。
for /l 可以做数字循环:
for /l %%n in (1,1,10) do echo 第 %%n 次
if 条件判断
@echo off
if exist "C:\config.ini" (
echo 配置文件已存在
) else (
echo 配置文件不存在,创建中...
copy default.ini C:\config.ini
)
if exist 判断文件是否存在;if errorlevel 1 判断上一条命令的退出码;if "%1"=="" 判断参数是否为空。
timeout 与 choice:等待与交互
timeout /t 30 /nobreak 等待 30 秒后继续,不允许中断
choice /c YN /m "是否继续?"
if errorlevel 2 goto end 按 N 跳转到 :end 标签
echo 用户选择了继续
:end
这两个命令让批处理脚本变得更友好,可以实现”定时执行”和”用户确认”的交互逻辑。
一个实用的自动备份脚本示例
@echo off
set src=C:\Users\%USERNAME%\Documents
set dst=D:\Backups\%date:~0,4%%date:~5,2%%date:~8,2%
md %dst% 2>nul
robocopy %src% %dst% /e /xf *.tmp /log:D:\Backups\backup.log
echo 备份完成:%dst%
timeout /t 3
这个脚本每次运行时,以当天日期为文件夹名创建备份(比如 20250418),排除临时文件,并记录日志。配合 Windows 任务计划程序设置定时运行,就是一个完整的自动备份方案。
五、注册表与组策略:系统深层配置
reg 命令:命令行操作注册表
注册表是 Windows 系统配置的数据库,reg 命令让你不用打开 regedit 图形界面就能读写。
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion
查询键下所有值
reg query HKCU\Software /s /f "Chrome" 递归搜索含 Chrome 的键
reg add HKCU\Software\MyApp /v Version /t REG_SZ /d "1.0"
添加字符串值
reg delete HKLM\SOFTWARE\BadApp /f 强制删除键
reg export HKCU\Software D:\reg_backup.reg 导出备份
reg import D:\reg_backup.reg 还原备份
修改注册表前务必先 reg export 做备份,操作失误可以还原。
gpupdate 与 gpresult:组策略管理
在企业域环境里,IT 管理员通过组策略统一管控所有电脑的配置。gpupdate /force 强制立即拉取并应用最新的组策略,而不用等待默认的 90 分钟刷新周期。
gpupdate /force
gpresult /r 查看当前生效的策略(文本格式)
gpresult /h C:\gp_report.html 生成 HTML 格式的详细策略报告
即便在非域环境(个人电脑),组策略也能用于修改很多深层系统设置,gpedit.msc 是图形界面,gpupdate 是命令行刷新工具。
六、系统信息与电源管理
wmic:WMI 的命令行接口
WMIC(Windows Management Instrumentation Command-line)可以查询几乎所有硬件和系统信息:
wmic cpu get name,numberofcores,loadpercentage CPU 型号、核心数、当前负载
wmic memorychip get capacity,speed 内存容量与频率
wmic diskdrive get model,size,status 硬盘型号与状态
wmic bios get serialnumber 主板序列号(报保查用)
wmic os get caption,version,buildnumber 操作系统详细版本
wmic process where name="chrome.exe" get processid,workingsetsize
查 Chrome 进程的内存占用
powercfg:电源与电池诊断
powercfg /energy 生成 60 秒电源效率分析报告(HTML)
powercfg /batteryreport 生成电池健康报告(笔记本必备)
powercfg /sleepstudy 分析睡眠状态报告
powercfg /requests 查看哪些程序在阻止系统进入睡眠
powercfg /batteryreport 生成的报告会显示电池设计容量和当前满充容量,两者差距就是电池的老化程度。
七、系统修复:急救工具箱
三件套:sfc → dism → bootrec
系统出问题时,按照这个顺序来:
第一步,sfc /scannow。扫描所有受保护的系统文件,自动替换损坏或被篡改的文件。必须以管理员权限运行,需要几分钟时间。
第二步,如果 sfc 修复失败(提示”发现损坏文件但无法修复”),再用 dism:
dism /online /cleanup-image /scanhealth 检查系统映像是否损坏
dism /online /cleanup-image /checkhealth 评估损坏程度
dism /online /cleanup-image /restorehealth 从 Windows Update 下载健康文件并修复
第三步,如果系统连引导都进不去,进 WinPE 后用 bootrec:
bootrec /fixmbr 修复主引导记录
bootrec /fixboot 修复引导扇区
bootrec /rebuildbcd 重建引导配置数据(BCD)
这三步能解决绝大多数”系统文件损坏”和”无法启动”的问题,比重装系统快得多。
八、实用技巧汇总
管道符 |:把左边命令的输出作为右边命令的输入,是 CMD 组合技的核心。
tasklist | findstr svchost 查找 svchost 进程
dir /s *.log | findstr "2025" 列出含 2025 的日志文件路径
重定向符 > 和 >>:> 把输出写入文件(覆盖),>> 追加到文件末尾。
ipconfig /all > network_info.txt 把网络信息保存成文件
systeminfo >> report.txt 把系统信息追加到报告
错误输出重定向 2>nul:很多命令会输出错误信息,用 2>nul 把错误信息扔掉,让输出更干净。
历史命令:按 ↑↓ 方向键调用历史命令;按 F7 弹出历史记录列表;doskey /history 查看所有历史。
Tab 自动补全:输入路径时按 Tab 键自动补全,再按可以切换到下一个匹配结果。
以管理员权限运行特定命令:
runas /user:Administrator cmd
输入密码后会以管理员身份打开新的 CMD 窗口。
CMD 的命令体系庞大,但核心就是这几个维度:网络诊断、文件操作、进程管理、系统修复、批处理自动化。每个方向深挖下去都有大量细节,但掌握本文的这些命令,已经足以应对日常 90% 的场景。上方的交互手册可以按分类筛选命令,点击任意命令卡片可以在对话中获取更详细的说明。
