事情发生在上个月。同事发来一条消息说电脑连不上网络,我在电话里让她按下Win+R输入cmd,然后逐条执行ipconfig /flushdns、ping网关、nslookup,十分钟后问题解决。她没有装任何第三方工具,用的全是Windows自带的命令行程序。这种场景其实特别常见:批量重命名几十个文件、查找某个端口被哪个进程占用、定期备份某个文件夹、快速查看本机IP——在图形界面里要折腾好几步的事,命令行往往只需要一行。
这也是我想写这篇内容的原因。标题里的“100个Windows CMD命令”并不是让你一天之内全背下来。我的观点很明确:你只需要先掌握三十来个高频命令,就足以覆盖绝大多数日常操作,剩下的是字典,遇到需求再查。本文会把命令按照实际场景重新整理,配合实例解释为什么这样用,而不是丢给你一份干巴巴的命令列表。无论你是办公室文员、运维新手,还是单纯受够了卡顿的普通用户,都能在里面找到能直接抄作业的内容。
1. 从“双击右键”到“一行命令”:CMD到底能帮你搞定什么
1.1 图形界面做不到的三件事
很多朋友觉得图形界面直观,但真正高频操作时,命令行有三个图形界面很难替代的优势。
第一是批量处理。你要把某个文件夹里的300张JPG照片全部改成“photo_1.jpg、photo_2.jpg”这种命名,用鼠标在资源管理器里一个一个F2重命名,点半小时胳膊都是酸的。命令行里一条FOR循环,几秒钟跑完。第二是可复用。你把一次操作写成.bat批处理文件,以后双击一下就是同样的效果,相当于把工作流固化下来。第三是可记录、可输出。命令行的结果可以重定向到文件、可以按关键字搜索、可以远程共享排查,这些在图形界面里反而麻烦。
1.2 哪些人最该认真学CMD
普通办公族会受益于批量重命名、快速查找文件、定时备份;IT运维和支持人员会用远程指挥同事输命令的方式解决大量问题;如果你只是个人电脑用户,学会查端口、清DNS缓存、看系统信息,也能少装很多所谓的“优化工具”,Windows自带的东西本来就能完成这些事。
我见过太多人电脑卡了第一反应是装个管家软件,其实你打开CMD输入tasklist看一眼CPU和内存占用,再用taskkill把异常进程结束掉,问题往往当场就解决了。
1.3 学习误区:别去背100个命令,先记这30个
很多人买了本《CMD命令大全》,翻两页就放弃了,因为几百个命令根本记不住。我的建议是:按场景记,分阶段记。第一阶段你只需要掌握三类命令就够日常用了——
- 文件操作类:cd、dir、md、rd、copy、move、ren、del、type
- 系统状态类:systeminfo、tasklist、taskkill、netstat、shutdown
- 网络排查类:ping、ipconfig、nslookup、tracert、netstat
这些大概二十多个,你先用熟。遇到不认识的命令时,在CMD里输入“命令 /?”,系统会给你完整帮助。这个习惯比任何教程都有用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 打开CMD的四种姿势,以及两个建议先改的设置
2.1 在指定文件夹直接打开窗口
打开CMD的方式有很多,最普及的是Win+R输入cmd回车,但我最推荐的是在文件资源管理器的地址栏里直接输入cmd回车。这样打开的窗口会自动定位到你当前浏览的文件夹,省去一遍遍cd跳转的工夫。举个例子,你正在D盘的某个项目目录里看文件,想批量处理这里的内容,直接在地址栏输入cmd,窗口打开就已经在这个目录下了。
另一种方式是Win+X菜单里选择“终端”或“命令提示符”,它有两个入口:普通权限和管理员权限。注意区分:普通权限的窗口标题会写“命令提示符”,管理员权限会写“管理员: 命令提示符”。凡是涉及系统级修改的命令,后面会具体说明。
2.2 什么时候必须用管理员权限
我踩过最早的坑就是权限不够。执行sfc /scannow检查系统文件完整性、chkdsk修复磁盘、net stop/start启停服务、操作注册表HKLM分支、修改系统网络配置时,普通权限窗口会直接报“拒绝访问”或者“没有足够的特权”。解决办法是在开始菜单搜索cmd,右键选“以管理员身份运行”。从Win+X菜单进终端时也可以选“管理员”入口。
这里提醒一句:不要习惯性什么都用管理员权限跑。平时查看IP、ping网关、复制文件用普通权限就行,减少误操作和风险。
2.3 修改编码和开启快速编辑,否则脚本跑起来是乱码
新装的Windows在CMD里显示中文一般没问题,但如果你写的脚本文件是UTF-8编码,拿到默认GBK代码页(936)的CMD里执行,输出就可能乱码。解决方法是输入chcp 65001临时切换UTF-8代码页,或者写脚本时把.bat文件另存为ANSI编码。我个人更推荐后者,因为不是每个环境都支持切换代码页后完美显示中文。
另外请在CMD窗口标题栏右键选“属性”,勾上“快速编辑模式”。勾选之后,鼠标左键拖动可以选定文字,右键直接粘贴,这对复制命令、复制输出内容非常关键。不然你要靠Ctrl+C、Ctrl+V在CMD里粘贴,会发现行为跟平时不一样,很容易卡住。
我平时用下面这些快捷键比较多:Tab自动补全路径、上下方向键切换历史命令、F7弹出历史命令列表、F3重复上一条命令。这些细节积累起来,效率差的是数量级的。
3. 文件与目录:占日常操作一半以上的命令,这样用才高效
3.1 目录跳转与查找:cd、dir、where、tree
cd大概是最先需要记熟的命令。注意一个坑:在CMD里直接cd D:\Tools是切不过去的,因为cd默认只切当前盘符下的目录。要跨盘符,用cd /d D:\Tools,或者先输入d:回车再cd \Tools。这个细节好多教程都没写清楚,我见过不少新手在这里卡了十分钟。
dir是目录列表命令。日常我用这几个参数:
- dir /s /b *.pdf 递归查找当前目录及子目录里所有PDF文件,输出完整路径
- dir /a 显示隐藏文件和系统文件
- dir /o 把文件排序好显示
- dir /s /b config 用来在不明目录里快速找文件特别管用
where是个容易被忽略的高频命令。where notepad会告诉你系统从哪里加载这个程序;在环境变量PATH里查找某个exe,就一条命令,不用去系统设置里翻来翻去。
tree命令会用字符线画出一整棵目录树。想快速看某个项目的目录结构时,tree /f甚至能把文件名一起列出来,比在资源管理器里一层层点快很多。
3.2 复制删除重命名的正确姿势:copy、xcopy、robocopy
copy和move的语法有共通之处:copy 源文件 目标位置。移动文件用move,重命名用ren。这三个都是高频命令,但有几个容易出错的点:
- ren只能改同目录下的文件名,不能跨盘符改名
- copy默认不能复制空目录,复制目录树要用xcopy或robocopy
- del *.tmp /s /q可以递归删除当前目录下所有.tmp临时文件,/q是安静模式不逐个确认,使用前一定想清楚路径对没对
重点说说robocopy。这是Windows里被我列为“最强复制工具”的命令,自带多线程复制、失败重试、日志记录、镜像同步。比如:
batch复制robocopy "C:\Users\%USERNAME%\Desktop" "D:\Backup\Desktop" /E /R:2 /W:1 /LOG:backup.log
/E表示复制所有子目录包括空目录,/R:2是失败重试2次,/W:1是重试等待1秒,/LOG把日志写进文件。如果要做一个“完全镜像备份”,用/MIR参数,它会让目标目录和源目录完全一致,源目录里多出来的文件会在目标里被删除。这个参数很强,但第一次用时建议先在测试目录里试,因为方向一旦反了,可能会把目标盘里不该删的文件清掉。我自己的习惯是:只用robocopy做“由电脑向备份盘”的同步,并且先跑一次不带/MIR的普通复制确认无误,再用/MIR执行。
3.3 批量改名:一条FOR循环干完半小时的活
批量重命名是我最常被问到的需求,其实一行命令就能搞定。比如把当前目录下所有jpg文件加上前缀photo_:
batch复制for %i in (*.jpg) do ren "%i" "photo_%i"
要注意:在CMD窗口里直接输入用单个百分号%,但如果写到.bat脚本里必须写两个百分号%%。这是新手最迷惑的地方,没有为什么,Windows批处理的语法就是这么定的。
那如果是按日期命名呢?先看一下你的系统日期格式,输入echo %date%,一般简体中文系统输出类似2025/04/01。然后可以这样拆:
batch复制set dt=%date:~0,4%%date:~5,2%%date:~8,2%
for %i in (*.jpg) do ren "%i" "%dt%_%i"
这里%date:~0,4%取的是从第0位开始的4个字符,也就是年份;以此类推,第5位开始取2个字符是月份,第8位开始取2个字符是日。不同系统的日期格式略有差别,如果取出来的值不对,先echo %date%确认一下再调整数字。类似这种细节,实际用起来才知道它的存在。
3.4 查看和搜索文本内容:type、findstr、more
type命令可以快速查看一个文本文件的内容,但文件太长时会被刷屏,所以配合more比较好。比如type config.txt | more,输出分页显示,按空格翻页。其实更常用的是findstr,它相当于命令行里的“搜索框”:
batch复制findstr /s /i "error" *.log
/s是递归子目录,/i是忽略大小写。在大量日志文件里查一个关键字,用这个命令往往比打开记事本一个个翻快得多。配合管道还能做更精细的处理,比如ipconfig | clip把输出直接复制到剪贴板,然后Ctrl+V粘贴到聊天窗口发给别人,排查问题的时候特别方便。
4. 进程、端口和服务管理:三类高频问题一次讲清
4.1 卡死:查进程、杀进程的正确顺序
电脑卡住时,很多人的第一反应是打开任务管理器找CPU占用率高的进程。其实在CMD里也一样能查能杀,而且有些时候进程假死到任务管理器都打不开,CMD反而是个突破口。查询当前所有进程:
batch复制tasklist
如果想看某个程序是否存在,用:
batch复制tasklist /fi "imagename eq chrome.exe"
杀进程有两个维度:按PID杀,或按映像名杀。按PID更精准。比如查到一个进程PID是1234,你想结束它:
batch复制taskkill /pid 1234 /f
/f是强制结束,/t会连同它启动的子进程一起干掉。实际使用中最容易犯的错是用/IM按映像名杀,比如taskkill /IM chrome.exe /F,会把所有chrome.exe进程全部结束,包括你已经写了一半的网页内容那些标签页。所以我现在的习惯是:先用tasklist查清楚PID,再按PID结束,除非是确定要把同名进程全部清理掉。
如果连tasklist都不响应,那说明系统负载已经非常高了,可以试试连按Ctrl+Shift+Esc打开任务管理器,或者在登录界面直接重启。这种情况我也遇到过,一般属于驱动或软件冲突,不是单纯杀进程能解决的了。
4.2 端口被占用:从netstat到taskkill的标准链路
“端口被占用”这个问题,几乎每个开发者和运维都遇到过。命令行处理起来非常标准。先找到谁在占用8080端口:
batch复制netstat -ano | findstr :8080
输出里你会看到类似“TCP 0.0.0.0:8080 0.0.0.0:0 LISTENINGING 1234”的内容,最后一列1234就是占用端口的进程PID。接下来看看这个PID是什么程序:
batch复制tasklist /fi "pid eq 1234"
确认是你认识的可疑程序之后,再决定是否结束:
batch复制taskkill /pid 1234 /f
这一套组合是我使用频率最高的排查链路。但有个非常重要的提醒:不要看到PID就直接杀。如果占用端口的是svchost.exe或者系统进程,强行结束可能引发系统不稳定。遇到这种情况,优先排查为什么系统组件会占用业务端口,而不是先动手杀。
4.3 服务启停与开机启动项
Windows服务管理在CMD里用sc命令或net命令。net start是查看已启动的服务,net stop服务名是停止服务,net start服务名是启动服务。不过net命令做不了更细的配置,要设置服务为“自动”“禁用”“手动”,得用sc:
batch复制sc config 服务名 start= auto
sc config 服务名 start= disabled
这里有个小坑:等号后面必须有一个空格再写auto或disabled,否则会报参数错误。写成start=auto也不行。这个细节通常不会出现在简化教程里,但我已经见过太多人在这里翻车。
开机启动项的查看和清理,除了任务管理器里切到“启动”页签,CMD也能操作。查看当前用户的启动项:
batch复制reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
计算机级别的启动项看HKLM分支:
batch复制reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"
如果发现某个启动项路径已经指向不存在的程序,可以删除:
batch复制reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v 启动项名称 /f
想新增一个开机启动项,可以往这个注册表位置写入键值。不过更简单的还是把快捷方式放进启动文件夹:在CMD里执行start shell:startup,会打开当前用户的启动文件夹,把exe的快捷方式拖进去即可。日常用途比如让某个工具开机自启,这样操作最直观。
4.4 系统体检:systeminfo、sfc、chkdsk
systeminfo能一次列出操作系统版本、制造商、BIOS版本、物理内存总量、可用内存、网卡信息等一大堆内容。在远程排查别人电脑问题时,我经常先让他执行systeminfo | findstr /i "总物理内存 可用物理内存"来确认是不是内存不足引起的卡顿。系统语言不同,字段名会有差异,直接用systeminfo看全量输出更稳妥。
sfc /scannow是系统文件检查命令,用来检测并修复受保护的系统文件。执行时间可能比较长,中途不要关窗口。它适合系统出现不明崩溃、某些功能间歇性异常时使用。chkdsk则是磁盘检查工具,完整命令是chkdsk C: /f,提示“是否计划在下次系统重新启动时检查此卷”时输入Y然后重启。如果你是普通用户,不用天天跑chkdsk,但系统频繁蓝屏或突然断电后,跑一次有益无害。
5. 网络诊断一条龙:断网时在CMD里完成的处理流程
5.1 ipconfig:看IP、清DNS缓存、重新获取地址
网络排查里最先用的命令一定是ipconfig。ipconfig单独输入会显示IPv4地址、子网掩码和默认网关。需要更详细信息就输入ipconfig /all,能看到DHCP是否启用、物理地址、DNS服务器列表这些。
两个常用的衍生用法:ipconfig /flushdns清空DNS解析缓存。当你换过DNS服务器或者域名解析记录更新后,本地还缓存着旧结果,导致网站打开报错或解析到旧IP,执行一下就恢复了。ipconfig /release然后ipconfig /renew可以重新向DHCP服务器获取IP地址,适合IP分配异常、获取不到有效地址的情况。要注意release之后会短暂断网,这是正常的。
5.2 ping:从本机到外网的逐个探测
ping命令看起来简单,但排查思路很重要。我习惯从近到远测:
- 先ping 127.0.0.1,这是本机回环地址,能通说明本机TCP/IP协议栈基本正常
- 再ping网关地址(ipconfig /all里能看到),能通说明内网链路正常
- 然后ping外网IP,比如223.5.5.5(阿里DNS),能通说明互联网连接正常
- 最后ping域名,比如www.baidu.com,能通说明DNS解析也正常
如果网关都ping不通,问题多半在网线、Wi-Fi连接或路由器上;如果外网IP能通但域名ping不通,那就是DNS问题,回到5.1节清缓存或者换DNS。ping -t可以让它持续输出,测试网络稳定性时非常直观,Ctrl+C结束。ping -n 100指定发100个包,用来统计丢包率。看到Request timed out不要急着下结论,有些主机关闭了ICMP回应,这是正常现象,你要结合多个测试点判断。
5.3 nslookup和tracert:解析故障与路由质量
nslookup用来查询域名解析记录。比如nslookup www.baidu.com会返回解析结果和当前使用的DNS服务器。如果nslookup正常但浏览器无法访问,可能是浏览器代理设置或者本地hosts文件有问题。想临时指定一个DNS服务器查询,可以输入nslookup www.baidu.com 223.5.5.5,但要注意在CMD里回车前确认没写错服务器地址。
tracert是路由追踪命令,tracert -d www.baidu.com会显示数据包经过的每一跳节点。前面带-d参数是不做反向域名解析,速度会快很多。如果你连接某个服务很慢,我一般先tracert一下看卡在哪一跳:如果卡在内网网关之后,多半是运营商线路问题或目标服务器响应慢;如果前几跳正常但后续超时多,可能是中间路由策略问题。pathping是tracert和ping的结合体,mac会丢包统计,但速度很慢,日常极少用。
5.4 完整案例:帮同事远程修好“上不了网”
把前面这些串起来,一个典型的断网排查流程是这样的。同事说浏览器打不开网页,但聊天软件正常。我先让他打开CMD,输入ipconfig /flushdns,然后ping www.baidu.com。ping不通,再ping 223.5.5.5,发现外网IP也不通,说明不是DNS问题而是网络链路断了。接着ping网关,这次是通的,说明本机到路由器没断。那问题大概率出在路由器到互联网之间,让他重启路由器和光猫,恢复正常。
如果外网IP能通但域名解析失败,就在CMD里输入ipconfig /all查看DNS服务器地址,再用nslookup测试解析。最后用netsh interface ip set dns命令手动指定公共DNS,解决经常性DNS解析失败。具体网卡名要通过netsh interface show interface查看。整套流程十分钟内完成,这就是命令行排查相比图形界面最大的价值:每一条命令都对应一个明确的判断步骤,不会让人对着网络设置页面干瞪眼。
6. 把重复劳动变成双击脚本:批处理与计划任务
6.1 你的第一个bat:避开闪退和乱码
把一串CMD命令写进一个.bat文件,双击就能按顺序执行,这就是批处理脚本。第一个脚本建议从最朴素的开始:打开记事本,写上
batch复制@echo off
echo 开始备份...
rem 这里写注释
pause
保存时把文件名改为test.bat,编码选ANSI。@echo off的作用是隐藏命令本身,只显示命令输出。pause的作用是让窗口在执行完后停留,不然窗口一闪而过,你根本看不到结果。经常有人问“为什么我的bat脚本双击就闪退”,十有八九就是少了pause,或者路径里有空格但没加引号。
6.2 变量、循环和条件:脚本也有基本逻辑
批处理里用set定义变量。注意set var=value等号两边不能有空格,写成set var = value会把变量名变成“var ”而不是“var”。
batch复制@echo off
set name=world
echo hello %name%
pause
echo %name%是使用变量的方式。在FOR循环里修改变量时,情况不太一样。CMD对变量的解析是一行一行处理的,如果循环体内要多次使用同一个变量,需要开启延迟变量扩展:
batch复制@echo off
setlocal enabledelayedexpansion
set n=0
for %%i in (1 2 3 4 5) do (
set /a n+=1
echo 第!n!次: %%i
)
pause
注意窗口里直接运行时用%i,脚本里写%%i;使用变量时,普通情况用%n%,循环体内用!n!。这些规则一开始会绕,但只要记住一句话:脚本里FOR循环变量用双百分号,循环体内需要动态变化的变量用感叹号包起来。
6.3 实战脚本:一键备份桌面文件
批量备份的最实用脚本,我献丑了。创建一个backup.bat:
batch复制@echo off
chcp 65001 >nul
set dt=%date:~0,4%%date:~5,2%%date:~8,2%
set dest=D:\Backup\Desktop_%dt%
robocopy "C:\Users\%USERNAME%\Desktop" "%dest%" /E /R:2 /W:1 /XD Cache Temp
echo 备份完成:%dest%
pause
这里用系统变量%USERNAME%自动匹配当前用户名,用%date:~0,4%这类切片拼出日期目录名,/XD排除Cache和Temp目录,避免拷贝临时文件。如果你第一次用robocopy,建议先不要加/MIR,等确认效果稳定再考虑镜像同步。备份完成后,如果目标路径存在同名文件,robocopy默认会跳过“已经相同”的文件,增量备份效率很高。
想进一步把备份包压成ZIP,可以借助系统自带的PowerShell,在批处理里调用:
batch复制powershell -command "Compress-Archive -Path '%dest%' -DestinationPath 'D:\Backup\Desktop_%dt%.zip' -Force"
这样备份文件夹和压缩包都出来了,全程不装额外软件。
6.4 开机启动与定时任务:用schtasks把脚本“挂出去”
按计划时间跑脚本,用schtasks命令。在CMD里创建每天上午9点执行C:\scripts\clean.bat的任务:
batch复制schtasks /create /tn "DailyClean" /tr "C:\scripts\clean.bat" /sc daily /st 09:00
查看任务:
batch复制schtasks /query /tn "DailyClean"
删除任务:
batch复制schtasks /delete /tn "DailyClean" /f
开机启动类任务用/sc onstart,登录时启动用/sc onlogon。不过我个人更推荐把自启任务放在“启动文件夹”,做法是CMD里执行start shell:startup,然后把快捷方式拖进去。这种方式对普通用户更透明,不会出现“任务计划里不知道哪个任务在做什么”的情况。
批处理脚本要特别注意:如果脚本里有路径,路径含空格就一定要用英文双引号包住,否则会变成两个参数导致命令执行失败。这是我无数次在脚本里踩过的坑。
7. 100个CMD命令分类速查清单(当字典用,不必背)
前面所有内容都是我平时真正在用的命令,下面按类别把常用命令整理出来。这份清单不是让你背的,而是当你某个需求不知道用什么命令时,来这里按目录找。每个命令后面跟的说明,基本就是它的用途。看到眼熟的但不确定用法的,记得用“命令 /?”查帮助。
7.1 文件与目录操作
| 命令 | 作用 |
|---|---|
| cd | 切换目录,跨盘符时加/d |
| dir | 列出当前或指定目录内容 |
| md | 创建目录 |
| rd | 删除目录,/s删除整个目录树,/q安静模式 |
| del | 删除文件,支持通配符 |
| copy | 复制文件 |
| xcopy | 复制目录树,比copy更灵活 |
| robocopy | 高级复制工具,支持镜像、日志、重试 |
| move | 移动文件或目录 |
| ren | 重命名文件或目录 |
| type | 查看文本文件内容 |
| more | 分页显示文本内容 |
| find | 在文件中搜索指定字符串(简单) |
| findstr | 在文件中搜索字符串(支持正则) |
| fc | 比较两个文件内容 |
| tree | 以树状结构显示目录 |
| attrib | 查看/修改文件属性(只读、隐藏等) |
| where | 在PATH中查找程序位置 |
| pushd | 记住当前目录并切换到指定目录 |
| popd | 恢复到pushd记住的目录 |
| subst | 将路径映射为磁盘盘符 |
| clip | 将命令输出复制到剪贴板 |
7.2 磁盘与系统检查
| 命令 | 作用 |
|---|---|
| chkdsk | 检查并修复磁盘错误 |
| diskpart | 磁盘分区管理工具 |
| defrag | 磁盘碎片整理 |
| cleanmgr | 打开磁盘清理工具 |
| format | 格式化磁盘分区 |
| convert | 将FAT32分区转换为NTFS |
| fsutil | 查询文件系统信息,查看磁盘空间等 |
| vol | 显示卷标和序列号 |
| label | 修改卷标 |
| sfc | 系统文件完整性检查 |
| chkntfs | 显示或修改开机时磁盘检查设置 |
| wmic | 查询大量系统信息,如硬盘型号 |
| mountvol | 创建、删除或列出卷挂载点 |
| vssadmin | 卷影副本管理,查看还原点和备份 |
7.3 进程、服务与系统信息
| 命令 | 作用 |
|---|---|
| tasklist | 列出当前运行的进程 |
| taskkill | 结束进程,按PID或映像名 |
| start | 启动新程序或打开文件夹 |
| sc | 查询、配置Windows服务 |
| net start | 启动服务(net stop为停止) |
| net | 网络连接、共享、服务的通用命令 |
| query | 查询会话、进程和服务状态 |
| tskill | 结束指定会话或进程 |
| systeminfo | 查看系统详细信息 |
| driverquery | 列出已安装的设备驱动 |
| shutdown | 关机、重启、注销,/a取消 |
| logoff | 注销当前用户 |
| powercfg | 电源配置,查询睡眠状态等 |
| bcdedit | 管理系统启动配置数据 |
| msconfig | 打开系统配置工具(GUI) |
| winver | 打开Windows版本信息窗口 |
| whoami | 显示当前用户和权限 |
| ver | 显示版本号 |
| hostname | 显示计算机名 |
| reg | 注册表查询、添加、修改、删除 |
7.4 网络诊断与连接
| 命令 | 作用 |
|---|---|
| ping | 测试主机连通性和延迟 |
| ipconfig | 查看IP地址、网卡配置、DNS缓存 |
| nslookup | 查询域名解析记录 |
| tracert | 路由追踪 |
| pathping | 路由追踪并统计丢包率和延迟 |
| netstat | 查看网络连接、端口、路由状态 |
| arp | 查看和修改IP/MAC映射表 |
| getmac | 查看本机所有网卡MAC地址 |
| route | 查看和修改路由表 |
| netsh | 强大的网络配置工具 |
| net use | 连接或断开网络共享 |
| net session | 查看和管理本机会话 |
| ftp | 连接FTP服务器 |
| telnet | 测试远程端口连通性 |
| nbtstat | 显示NetBIOS协议统计信息 |
| curl | 发送HTTP请求、下载文件 |
| bitsadmin | 后台智能传输服务,命令行下载工具 |
7.5 批处理与系统环境
| 命令 | 作用 |
|---|---|
| echo | 输出文本,或设置ECHO开关 |
| set | 设置、显示环境变量或变量 |
| setx | 永久设置环境变量 |
| for | 循环处理文件、命令和变量 |
| if | 条件判断 |
| rem | 注释 |
| call | 调用另一个批处理文件或标签 |
| goto | 跳转到指定标签 |
| shift | 批量处理中移位参数 |
| pause | 暂停,等待用户按键 |
| timeout | 等待指定秒数 |
| choice | 等待用户选择按键 |
| color | 更改窗口字体和背景颜色 |
| title | 修改CMD窗口标题 |
| mode | 设置窗口大小、COM口、打印口 |
| prompt | 修改命令提示符样式 |
| date | 查看或设置系统日期 |
| time | 查看或设置系统时间 |
| cls | 清空屏幕 |
| exit | 退出CMD窗口 |
| cmd | 启动新的CMD实例 |
| help | 列出所有系统命令并简要说明 |
7.6 其他实用命令
| 命令 | 作用 |
|---|---|
| assoc | 查看或修改文件扩展名关联 |
| ftype | 查看或修改文件类型关联的执行命令 |
| cipher | 加密或解密NTFS分区上的文件 |
| sort | 对输入内容排序 |
| expand | 解压压缩包中的文件 |
| makecab | 将文件打包为cab压缩格式 |
| wmic os | 查询操作系统信息 |
| schtasks | 创建、查询、修改计划任务 |
| eventvwr | 打开事件查看器(GUI) |
| charmap | 打开字符映射表 |
| mstsc | 打开远程桌面连接 |
| compmgmt | 打开计算机管理控制台 |
这份清单列了一百多行,实际上日常我会频繁使用的不超过40个。建议你把它复制到自己的速查文档里,遇到问题先查目录,而不是硬背。
最后分享一个我自己的习惯:新建一个cmd-cheatsheet.txt放在桌面,里面按“文件类”“网络类”“进程类”“系统类”记着常用命令和参数。刚开始几乎每一周都要翻一次,半年过后基本不需要翻了,因为用多了自然就刻在脑子里。很多朋友问为什么不用好看的图形化工具,我的回答很简单:Windows自带的CMD没有任何安装成本,任何一台机器都有,远程指挥别人排查时最可靠。你真正需要的不是100个命令,而是遇到重复操作时多想一步——这能不能用命令行做?答案通常是能。下次当你又一次对着一堆文件发呆时,记得先把那个黑色的窗口打开。
