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)

注释 (Comments)

  • 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"
}

# 比较运算符: -eq (等于), -ne (不等于), -gt (大于), -lt (小于), -like (通配符), -match (正则)
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
)

:: 数字循环 (从15)
for /L %%i in (1,1,5) do echo %%i

PowerShell:

1
2
3
4
5
6
7
# Foreach 循环
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)