1. Windows CMD 基础认知与核心价值
作为Windows系统中最古老的命令行工具,CMD(Command Prompt)自1987年随Windows NT问世以来,始终是系统管理的利器。尽管PowerShell和Windows Terminal日渐流行,但CMD凭借其轻量级特性和广泛的兼容性,仍然是日常系统维护、批量处理的首选工具。特别是在以下场景中体现其不可替代性:
- 快速系统诊断(网络测试、服务状态检查)
- 批量文件操作(重命名、备份、清理)
- 自动化任务调度(结合任务计划程序)
- 遗留系统维护(兼容早期DOS程序)
提示:Win+R输入cmd即可唤起标准命令行窗口,配合Ctrl+Shift+Enter可快速以管理员权限运行。
2. 核心命令分类解析
2.1 系统信息与配置命令
systeminfo 堪称系统体检报告单,执行后会输出包括:
- 操作系统版本与安装日期
- 硬件配置(处理器、内存)
- 网络适配器详情
- 已安装的热修复补丁列表
典型应用场景举例:
bash复制systeminfo | findstr /B /C:"OS Name" /C:"System Type"
这条管道命令可快速提取系统类型(32/64位)和具体版本号。
wmic 作为Windows管理工具,能获取深层次系统信息:
bash复制wmic memorychip get capacity # 查看内存条大小
wmic diskdrive get size,model # 获取硬盘信息
wmic startup list full # 列出所有启动项
2.2 文件与目录操作
robocopy 是文件复制的终极方案,相比普通copy命令具有:
- 断点续传功能(/Z参数)
- 多线程传输(/MT:32)
- 镜像同步模式(/MIR)
- 文件过滤能力(/XF *.tmp)
实测案例:将D盘数据备份到移动硬盘E盘,排除临时文件并记录日志:
bash复制robocopy D:\ E:\Backup /MIR /XF *.tmp /R:3 /W:10 /LOG:C:\backup.log
tree 命令的进阶用法:
bash复制tree F: /F /A > dir_tree.txt
/A参数使用ASCII字符替代扩展字符,适合纯文本环境;/F显示文件名;重定向输出便于存档。
2.3 网络诊断与配置
ping 的隐藏技巧:
bash复制ping -t 192.168.1.1 | Foreach {"{0} - {1}" -f (Get-Date),$_} > ping_log.txt
持续ping测试并附带时间戳记录,适合网络故障排查时建立时间线证据。
netsh 的典型应用:
bash复制netsh interface ip show config # 查看IP配置
netsh wlan show profiles # 列出保存的WiFi配置
netsh advfirewall set allprofiles state off # 临时关闭防火墙
3. 批处理脚本开发实战
3.1 变量与流程控制
环境变量操作示例:
bat复制@echo off
set /p username=请输入用户名:
set /p passwd=请输入密码:
if "%username%"=="admin" (
if "%passwd%"=="P@ssw0rd" (
echo 登录成功
) else (
echo 密码错误
)
) else (
echo 用户不存在
)
循环处理当前目录所有txt文件:
bat复制for %%F in (*.txt) do (
echo 正在处理:%%F
type "%%F" | find "error" >nul && (
echo 文件%%F包含错误信息 >> error.log
)
)
3.2 错误处理与日志记录
标准错误处理框架:
bat复制@echo off
set LOGFILE=operation_%date:~0,4%%date:~5,2%%date:~8,2%.log
call :main >> %LOGFILE% 2>&1
exit /b
:main
robocopy C:\source D:\backup /MIR
if %errorlevel% neq 0 (
echo [ERROR] 备份失败,错误代码:%errorlevel%
exit /b 1
)
echo [INFO] 备份完成于 %time%
exit /b 0
4. 高级技巧与系统集成
4.1 注册表操作
通过reg命令实现注册表备份与修改:
bash复制reg export "HKEY_CURRENT_USER\Software\Microsoft\Windows" win_settings.reg
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "C:\wall.jpg" /f
4.2 计划任务集成
创建每天凌晨3点运行的清理任务:
bash复制schtasks /create /tn "DailyCleanup" /tr "cmd /c del /q C:\temp\*.*" /sc daily /st 03:00
4.3 与其他工具的协同
结合curl实现API调用:
bash复制curl -X POST -H "Content-Type: application/json" -d "{\"key\":\"value\"}" http://api.example.com
使用certutil进行文件编码转换:
bash复制certutil -encode input.txt encoded.txt
certutil -decode encoded.txt output.txt
5. 安全防护与故障排查
5.1 用户权限管理
查看本地用户组:
bash复制net localgroup
创建受限用户:
bash复制net user testuser P@ssw0rd /add /passwordchg:no
net localgroup Users testuser /add
5.2 系统服务控制
关键服务操作命令:
bash复制sc query state= all # 列出所有服务
sc config WinDefend start= disabled # 禁用Windows Defender
net stop wuauserv # 暂停Windows Update服务
5.3 常见问题解决方案
问题1:中文乱码
解决方案:
bash复制chcp 65001
set PYTHONIOENCODING=utf-8
问题2:文件被占用无法删除
解决步骤:
- 查找占用进程:
bash复制handle64.exe -p <filename>
- 结束进程:
bash复制taskkill /pid <PID> /f
问题3:网络共享连接失败
诊断命令序列:
bash复制net view \\target-pc
nbtstat -A 192.168.1.100
net use z: \\server\share /user:domain\username password
6. 效率提升工具链
6.1 控制台增强配置
修改cmd默认属性:
- 右键标题栏 → 属性
- 启用"快速编辑模式"
- 调整缓冲区大小至999行
- 设置字体为"Consolas"增强可读性
6.2 第三方工具整合
推荐必备增强工具:
- Clink:为CMD添加Bash风格的行编辑功能
- Cmder:集成Git、SSH等工具的增强控制台
- Gow:在Windows上实现Linux核心命令集
安装示例:
bash复制choco install clink -y
setx PATH "%PATH%;C:\Program Files (x86)\Gow\bin"
6.3 自定义快捷方式
创建带启动参数的快捷方式:
- 右键新建快捷方式
- 目标位置填写:
code复制%windir%\system32\cmd.exe /k "cd /d C:\projects && color 0A"
/k参数保持窗口打开,&&可串联多个命令
7. 版本差异与兼容性
7.1 Windows版本差异
Windows 7 vs Windows 10/11:
- Win10开始支持ssh原生客户端
- Win11默认终端改为Windows Terminal
- 部分命令行为变化:
tasklist在Win10新增/V参数显示详细信息xcopy在Win11被标记为弃用
7.2 32位与64位系统区别
关键差异点:
- 系统目录路径不同:
bash复制echo %PROGRAMFILES% # 64位程序 echo %PROGRAMFILES(x86)% # 32位程序 - 注册表分支差异:
bash复制reg query "HKLM\Software\Wow6432Node\..."
8. 性能监控与优化
8.1 实时资源监控
tasklist 进阶用法:
bash复制tasklist /FI "IMAGENAME eq chrome.exe" /FO TABLE /NH
/FI参数过滤特定进程,/NH去掉表头,适合脚本处理
wmic 监控CPU负载:
bash复制wmic cpu get loadpercentage /value
8.2 启动项管理
查看所有启动项:
bash复制wmic startup get caption,command
禁用特定启动项:
bash复制wmic startup where caption="SomeProgram" call disable
8.3 磁盘健康检查
使用chkdsk检测坏道:
bash复制chkdsk C: /F /R /X
/F自动修复错误,/R定位坏扇区,/X强制卸载卷
查看SSD健康状态:
bash复制wmic diskdrive get status,model
9. 自动化运维案例
9.1 自动备份脚本
完整备份方案示例:
bat复制@echo off
set BACKUP_DIR=D:\backups\system_%date:~0,4%-%date:~5,2%-%date:~8,2%
md "%BACKUP_DIR%"
robocopy C:\Users "%BACKUP_DIR%\Users" /MIR /XD "AppData" "Temp"
robocopy C:\ImportantData "%BACKUP_DIR%\Data" /MIR
7z a -t7z "%BACKUP_DIR%.7z" "%BACKUP_DIR%"
rd /s /q "%BACKUP_DIR%"
echo 备份已完成:%BACKUP_DIR%.7z >> backup.log
9.2 批量用户管理
创建多个域用户:
bat复制for /f "tokens=1,2" %%A in (users.txt) do (
net user %%A P@ssw0rd /add /fullname:"%%B" /domain
net group "Domain Users" %%A /add /domain
)
9.3 网络配置批处理
自动配置静态IP:
bat复制netsh interface ip set address "以太网" static 192.168.1.100 255.255.255.0 192.168.1.1
netsh interface ip set dns "以太网" static 8.8.8.8
netsh interface ip add dns "以太网" 8.8.4.4 index=2
10. 调试与错误处理
10.1 命令回显控制
调试模式开关:
bat复制@echo on # 显示每条命令
setlocal enabledelayedexpansion # 启用延迟变量扩展
10.2 错误级别处理
检查上条命令结果:
bat复制some_command
if errorlevel 1 (
echo 命令执行失败,错误码:%errorlevel%
exit /b %errorlevel%
)
10.3 日志分级记录
实现分级日志系统:
bat复制:log
setlocal
set level=%1
set message=%2
set timestamp=%date% %time%
echo [%level%] %timestamp% - %message% >> script.log
endlocal
exit /b
:: 调用示例
call :log INFO "程序启动"
call :log ERROR "文件未找到"
11. 终端美化与个性化
11.1 颜色与提示符
修改CMD颜色方案:
bat复制color 0A # 黑底绿字
title 我的控制台
prompt $G[$P]$G # 显示为 >[C:\path]>
11.2 别名功能实现
通过doskey创建别名:
bat复制doskey ls=dir /w $*
doskey grep=findstr $*
doskey clear=cls
永久化配置:
- 创建aliases.cmd文件
- 在注册表添加启动项:
bat复制reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun /t REG_SZ /d "%USERPROFILE%\aliases.cmd" /f
12. 与其他语言集成
12.1 调用Python脚本
传递参数示例:
bat复制python script.py --input "%1" --output "%2"
捕获输出:
bat复制for /f "tokens=*" %%i in ('python -c "print(1+1)"') do set result=%%i
echo 计算结果:%result%
12.2 结合PowerShell
混合编程示例:
bat复制@echo off
for /f "delims=" %%i in ('powershell -command "Get-Date -Format yyyyMMdd"') do (
set today=%%i
)
echo 今天是:%today%
12.3 调用VBScript
执行VBS代码片段:
bat复制echo WScript.Echo "Hello from VBS" > temp.vbs
cscript //nologo temp.vbs
del temp.vbs
13. 历史命令与补全
13.1 命令历史管理
查看历史记录:
bat复制doskey /history
快速调用历史命令:
- 上/下箭头:浏览历史
- F7:图形化历史列表
- F8:搜索历史命令
- F9:按编号执行历史命令
13.2 路径补全技巧
启用增强补全:
- 创建注册表项:
bat复制reg add "HKCU\Software\Microsoft\Command Processor" /v CompletionChar /t REG_DWORD /d 9 /f
reg add "HKCU\Software\Microsoft\Command Processor" /v PathCompletionChar /t REG_DWORD /d 9 /f
- 重启CMD后:
- Tab键补全文件名
- Ctrl+D补全目录名
14. 系统环境深度管理
14.1 环境变量操作
查看所有环境变量:
bat复制set
临时添加PATH:
bat复制set PATH=%PATH%;C:\new\path
永久修改环境变量(需要管理员权限):
bat复制setx /M PATH "%PATH%;C:\program\bin"
14.2 系统时间同步
强制同步时间服务器:
bat复制net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /resync
14.3 电源管理
查看电源方案:
bat复制powercfg /list
设置高性能模式:
bat复制powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
15. 硬件信息获取
15.1 设备清单导出
生成完整硬件报告:
bat复制systeminfo > hardware.txt
driverquery /v >> hardware.txt
wmic bios get serialnumber >> hardware.txt
15.2 USB设备历史
查看USB使用记录:
bat复制wevtutil qe System "/q:*[System[Provider[@Name='Microsoft-Windows-DriverFrameworks-UserMode'] and EventID=2003]]" /rd:true /f:text
15.3 温度监控
通过WMI获取CPU温度:
bat复制wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature
注:需硬件支持,返回值需除以10再减273.15得到摄氏度
16. 系统恢复与修复
16.1 系统文件检查
扫描并修复系统文件:
bat复制sfc /scannow
深度修复:
bat复制DISM /Online /Cleanup-Image /RestoreHealth
16.2 启动修复
创建修复磁盘:
bat复制reagentc /enable
reagentc /boottore
16.3 重置网络配置
TCP/IP栈重置:
bat复制netsh int ip reset
netsh winsock reset
ipconfig /flushdns
17. 进程深度管理
17.1 进程树查看
显示进程层级关系:
bat复制tasklist /V /FO LIST /M
wmic process get name,parentprocessid,processid
17.2 内存占用分析
排序显示内存占用:
bat复制tasklist /FO TABLE /NH /SORT:mem
17.3 远程进程管理
连接远程计算机:
bat复制tasklist /S 192.168.1.100 /U administrator /P password
taskkill /S remote-pc /U user /PID 1234
18. 注册表高级操作
18.1 注册表备份策略
完整备份方案:
bat复制reg export "HKLM\SOFTWARE" software.reg
reg export "HKLM\SYSTEM" system.reg
reg export "HKCU" user.reg
18.2 注册表监控
检测特定键值变化:
bat复制reg compare "HKCU\Software\App" "HKCU\Software\App_Bak" /oa
18.3 权限管理
修改注册表项权限:
bat复制regini -m \\computername registry.txt
registry.txt内容格式:
code复制HKEY_LOCAL_MACHINE\SOFTWARE [1 5 7 17]
19. 组策略相关命令
19.1 策略刷新
强制更新组策略:
bat复制gpupdate /force
19.2 策略结果集
生成策略报告:
bat复制gpresult /h report.html /f
19.3 策略备份
导出所有策略设置:
bat复制secedit /export /cfg policies.inf /areas SECURITYPOLICY
20. 虚拟化相关命令
20.1 Hyper-V管理
查看虚拟机列表:
bat复制wmic /namespace:\\root\virtualization\v2 PATH MSVM_ComputerSystem get ElementName
20.2 检查虚拟化状态
确认虚拟化支持:
bat复制systeminfo | findstr /I "Hyper-V"
wmic computersystem get hypervisorpresent
20.3 容器管理
Docker基础命令:
bat复制docker ps -a
docker images
docker network ls