Windows CMD & PowerShell 常用命令大全
本文档整理了 Windows 命令行(CMD)和 PowerShell 中最常用的指令。
说明:Windows 系统包含成千上万个命令(尤其是 PowerShell,可以通过安装模块无限扩展),要列出“所有”命令是不现实且不便于查询的。本文档精选了日常开发、运维和系统管理中 95% 场景 下会用到的核心命令。
为了区分适用环境,本文使用以下标签进行标识:
- CMD : 仅能在 CMD (命令提示符) 中使用。
- PowerShell : 仅能在 PowerShell 中使用。
- 通用 : 在 CMD 和 PowerShell 中均可直接使用。
1. 目录与文件操作 (File & Directory)
| 适用性 |
命令 |
描述 |
常用参数 (CMD/通用) |
示例 |
| 通用 |
cd |
切换当前目录 |
/d: 跨盘符切换 (仅CMD) |
cd /d D:\Work |
| 通用 |
dir |
列出目录内容 |
/a: 显示隐藏文件
/s: 递归子目录
/b: 仅显示文件名 |
dir /s /b *.txt |
| 通用 |
md |
创建新目录 |
(无常用参数) |
md new_folder |
| 通用 |
rd |
删除目录 |
/s: 删除目录树(含文件)
/q: 安静模式(不确认) |
rd /s /q temp_dir |
| 通用 |
del |
删除文件 |
/f: 强制删除只读文件
/s: 递归子目录
/q: 安静模式 |
del /f /q *.log |
| 通用 |
copy |
复制文件 |
/y: 不提示直接覆盖 |
copy /y a.txt b.txt |
| 通用 |
xcopy |
复制文件和目录树 |
/s: 复制非空目录
/e: 包含空目录
/y: 覆盖不提示 |
xcopy /s /e src dest |
| 通用 |
robocopy |
健壮的文件复制工具 |
/mir: 镜像同步
/z: 断点续传
/mt: 多线程 |
robocopy src dest /mir |
| 通用 |
move |
移动/重命名 |
/y: 不提示直接覆盖 |
move /y old.txt new/ |
| 通用 |
ren |
重命名文件 |
(无常用参数) |
ren old.txt new.txt |
| 通用 |
type |
查看文本内容 |
(无常用参数) |
type readme.md |
| 通用 |
tree |
树状图显示 |
/f: 显示文件名 |
tree /f |
| PowerShell |
New-Item |
创建文件/目录 |
-ItemType File/Directory: 指定类型
-Force: 强制创建 |
ni -ItemType File test.txt |
2. 网络操作 (Network)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| 通用 |
ping |
测试连通性 |
-t: 持续Ping
-n <数字>: 指定次数
-l <字节>: 指定包大小 |
ping -t 8.8.8.8 |
| 通用 |
ipconfig |
查看IP配置 |
/all: 详细信息(含MAC)
/flushdns: 刷新DNS缓存
/release: 释放IP |
ipconfig /flushdns |
| 通用 |
netstat |
端口与连接 |
-a: 显示所有连接
-n: 数字形式显示IP/端口
-o: 显示进程PID |
netstat -ano |
| 通用 |
tracert |
路由跟踪 |
-d: 不解析主机名(更快) |
tracert -d 8.8.8.8 |
| 通用 |
nslookup |
域名解析 |
type=mx: 查询邮件记录
8.8.8.8: 指定DNS服务器 |
nslookup google.com |
| 通用 |
telnet |
端口测试 |
(无,直接跟IP和端口) |
telnet 127.0.0.1 80 |
| 通用 |
ssh |
SSH远程登录 |
-p: 指定端口 |
ssh [email protected] |
| 通用 |
scp |
SSH远程复制 |
-P: 指定端口(注意大写) |
scp local.txt user@host:/tmp |
| PowerShell |
Test-NetConnection |
网络测试 |
-Port: 指定端口
-TraceRoute: 路由跟踪 |
tnc google.com -Port 443 |
3. 进程与服务管理 (Process & Service)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| 通用 |
tasklist |
列出进程 |
/fi: 筛选器
/m: 列出加载的模块 |
tasklist /fi "MEMUSAGE gt 50000" |
| 通用 |
taskkill |
结束进程 |
/f: 强制终止
/im: 按镜像名称
/pid: 按PID |
taskkill /f /im notepad.exe |
| 通用 |
net start/stop |
管理服务 |
(无) |
net stop "print spooler" |
| 通用 |
sc |
服务控制 |
query: 查询状态
config: 修改配置
delete: 删除服务 |
sc query state= all |
| PowerShell |
Get-Process |
获取进程 |
-Name: 按名称
-Id: 按ID |
gps -Name chrome |
| PowerShell |
Stop-Process |
结束进程 |
-Force: 强制
-PassThru: 输出结果 |
kill -Name notepad -Force |
4. 系统信息与管理 (System Info)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| 通用 |
systeminfo |
系统详细信息 |
/fo list: 列表格式输出 |
`systeminfo |
| CMD |
ver |
Windows 版本号 |
(无) |
ver |
| 通用 |
whoami |
当前用户 |
/user: 显示SID
/groups: 显示用户组 |
whoami /user |
| 通用 |
shutdown |
关机/重启 |
/s: 关机
/r: 重启
/t <秒>: 倒计时
/a: 取消 |
shutdown /s /t 60 |
| 通用 |
cls |
清屏 |
(无) |
cls |
| PowerShell |
Get-ComputerInfo |
极详尽信息 |
-Property: 指定属性 |
Get-ComputerInfo -Property Os* |
5. 用户与组管理 (User & Group)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| 通用 |
net user |
用户管理 |
/add: 添加用户
/delete: 删除用户
/active:yes: 激活 |
net user guest /active:yes |
| 通用 |
net localgroup |
用户组管理 |
/add: 添加组或成员
/delete: 删除 |
net localgroup administrators User /add |
| 通用 |
runas |
以其他用户身份运行 |
/user:<用户>: 指定用户 |
runas /user:Administrator cmd |
| PowerShell |
Get-LocalUser |
获取本地用户 |
(无) |
Get-LocalUser |
6. 软件包与磁盘管理 (Package & Disk)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| 通用 |
winget |
Windows包管理器 |
search: 搜索
install: 安装
upgrade: 更新 |
winget install Microsoft.PowerToys |
| 通用 |
diskpart |
磁盘分区工具 |
(交互式工具) |
diskpart -> list disk |
| PowerShell |
Get-Disk |
获取磁盘信息 |
(无) |
Get-Disk |
| PowerShell |
Get-Partition |
获取分区信息 |
(无) |
Get-Partition |
7. 高级系统管理与维护 (Advanced Admin & Maintenance)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| 通用 |
sfc |
系统文件检查修复 |
/scannow: 立即扫描并修复系统文件 |
sfc /scannow |
| 通用 |
dism |
映像部署与管理(修复系统) |
/Online /Cleanup-Image /RestoreHealth: 修复映像 |
dism /Online /Cleanup-Image /RestoreHealth |
| 通用 |
chkdsk |
磁盘检查 |
/f: 修复错误
/r: 查找坏扇区并恢复 |
chkdsk C: /f |
| 通用 |
icacls |
文件权限管理(ACL) |
/grant: 授权
/deny: 拒绝
/reset: 重置权限 |
icacls file.txt /grant User:F |
| 通用 |
attrib |
修改文件属性 |
+h: 设为隐藏
-h: 取消隐藏
+r: 设为只读 |
attrib +h +s secret.txt |
| 通用 |
schtasks |
计划任务管理 |
/create: 创建任务
/delete: 删除任务 |
schtasks /query |
| 通用 |
setx |
永久设置环境变量 |
/m: 设置系统变量(需管理员) |
setx /m PATH "%PATH%;C:\Bin" |
| 通用 |
curl |
发送网络请求 (PS中需用curl.exe) |
-I: 仅查看Header
-o: 下载保存 |
curl -I https://google.com |
| PowerShell |
Invoke-WebRequest |
发送Web请求 |
-OutFile: 下载保存
-Method: 指定方法 |
iwr google.com -OutFile index.html |
| PowerShell |
Get-FileHash |
计算文件哈希值 |
-Algorithm: 算法(MD5/SHA256) |
Get-FileHash file.iso -Algorithm MD5 |
| PowerShell |
Compress-Archive |
压缩文件/文件夹 |
-Path: 源文件
-DestinationPath: 目标zip |
Compress-Archive -Path src -DestinationPath arc.zip |
8. 其他实用工具 (Other Utilities)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| 通用 |
wsl |
Linux 子系统 |
--install: 安装
-d: 指定发行版 |
wsl -d Ubuntu |
| 通用 |
explorer |
打开资源管理器 |
. : 打开当前目录 |
explorer . |
| CMD |
clip |
复制输出到剪贴板 |
(作为管道目标) |
`dir |
| PowerShell |
Set-Clipboard |
复制到剪贴板 |
(作为管道目标) |
`ls |
| PowerShell |
Get-Clipboard |
读取剪贴板内容 |
(无) |
Get-Clipboard |
9. 帮助与策略 (Help & Policy)
| 适用性 |
命令 |
描述 |
常用参数 |
示例 |
| CMD |
/? |
获取命令帮助 |
(跟在命令后) |
dir /? |
| CMD |
help |
列出所有命令 |
(无) |
help |
| PowerShell |
Get-Help |
获取详细帮助 |
-Examples: 显示示例
-Full: 完整信息 |
Get-Help Get-Service -Examples |
| PowerShell |
Get-Command |
查找命令 |
-Name: 按名称查找 |
Get-Command *service* |
| PowerShell |
Get-Member |
查看对象成员(属性/方法) |
(无) |
`”hello” |
| PowerShell |
Set-ExecutionPolicy |
设置脚本执行策略 |
RemoteSigned: 允许本地脚本 |
Set-ExecutionPolicy RemoteSigned |
10. 脚本编写语法 (Script Syntax)
- CMD :
REM 或 ::
- PowerShell :
# (单行), <# ... #> (多行)
变量赋值 (Variables)
| 适用性 |
语法 |
示例 |
| CMD |
set 变量名=值 |
set name=Tom set /a age=10+5 (数学运算) |
| PowerShell |
$变量名 = 值 |
$name = "Tom" $age = 10 + 5 |
数据结构 (Data Structures)
PowerShell (特有):
1 2 3 4 5 6 7 8
| $arr = 1, 2, 3 $arr += 4 echo $arr[0]
$dict = @{ "Name" = "Tom"; "Age" = 18 } echo $dict["Name"]
|
条件判断 (If/Else)
CMD:
1 2 3 4 5 6 7
| if exist config.ini ( echo Config found ) else ( echo Config missing )
if %ERRORLEVEL% EQU 0 echo Success
|
PowerShell:
1 2 3 4 5 6 7 8
| if (Test-Path config.ini) { Write-Host "Config found" } else { Write-Host "Config missing" }
if ($name -like "T*") { echo "Match!" }
|
循环 (Loops)
CMD (For Loop):
1 2 3 4 5 6 7
| :: 遍历当前目录下的 .txt 文件 for %%i in (*.txt) do ( echo Found file: %%i )
:: 数字循环 (从1到5) for /L %%i in (1,1,5) do echo %%i
|
PowerShell:
1 2 3 4 5 6 7
| foreach ($file in Get-ChildItem *.txt) { Write-Host "Found file: $($file.Name)" }
1..5 | ForEach-Object { echo $_ }
|
函数 (Functions)
CMD:
1 2 3 4 5 6 7
| :MyFunction echo Hello from function! echo Param: %1 goto :eof
:: 调用 call :MyFunction World
|
PowerShell:
1 2 3 4 5 6 7 8 9
| function Say-Hello { param( [string]$Name = "World" ) Write-Host "Hello, $Name!" }
Say-Hello -Name "PowerShell"
|
错误处理 (Error Handling)
CMD:
1 2 3 4 5
| some_command if %ERRORLEVEL% NEQ 0 ( echo Command failed! exit /b 1 )
|
PowerShell:
1 2 3 4 5 6
| try { Get-Item "non_existent_file.txt" -ErrorAction Stop } catch { Write-Error "Caught an error: $_" }
|
11. 常用快捷键
- Tab: 自动补全
- Ctrl + C: 中断命令
- Up/Down: 历史命令
- F7: 查看历史命令列表 (仅 CMD)