LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

[点晴永久免费OA]一次讲清 Windows 系统的CMD 和 PowerShell 有啥区别

admin
2026年10月30日 17:7 本文热度 40

你有没有过这种经历:

网上搜"怎么清理 C 盘""怎么查电脑 IP",教程让你"打开命令提示符,输入 ipconfig"。你照做,弹出一个黑窗口,稀里糊涂敲完,解决了。

但下次再搜,又有教程说"打开 PowerShell,输入 Get-xxx"。

你懵了:这俩不是一个东西吗?长得差不多啊,到底该用哪个?

其实它们完全不是一回事——一个是从 DOS 时代活到现在的"老古董",一个是微软花了十几年打造的"现代化自动化工具"。今天用大白话讲清它俩的区别,看完你不会再选错。


一、一句话讲清本质区别

如果这篇文章你只记住一句,就记这句:

CMD 给你的是「一段文字」,PowerShell 给你的是「一张表格」。

听起来抽象?举个实际例子——你想找出最占内存的 5 个程序:

在 CMD 里:tasklist 会给你一屏文字。想排序?对不起,它没这功能,你得自己肉眼找,或者写一段很复杂的文本截取脚本。

在 PowerShell 里:Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5,直接按内存排序输出前 5 名。

差别在哪?

  • CMD 输出的是纯文本——就像打印在纸上的一张清单,你想再处理,得拿尺子按列数字符位置去"抠字";
  • PowerShell 输出的是对象——就像一张 Excel 表,每一行是一个程序,每一列是它的属性(名字、PID、内存占用),你直接按列排序、筛选就行,不用抠字。

技术圈有句玩笑:CMD 递给你一张纸,PowerShell 递给你一张 Excel。这就是全部区别的根源,后面所有差异都从这里长出来。


二、先认识一下这两位


CMD(命令提示符)PowerShell
真名
cmd.exepowershell.exe
(5.1)/ pwsh.exe(7)
出生
从 MS-DOS 时代一路保留至今
2006 年
推出
底座
老式命令解释器
基于 .NET 框架
输出
文本对象
脚本
.bat
 / .cmd 批处理
.ps1
 脚本
跨平台
只在 Windows
PowerShell 7 支持 Win/Linux/Mac
还在更新吗
❌ 仅维护,不再开发新功能
✅ 持续开发

简单理解:CMD 是"Windows 的传家宝",为了兼容几十年前的老程序一直留着;PowerShell 是微软真正主推的现代命令行,能写脚本、能管系统、能连云端。


三、外观上怎么区分?(一张图看懂)

看两个地方就够:

  • 颜色
    :传统 CMD 是黑底白字;Windows PowerShell 默认蓝底(现在都跑在 Windows Terminal 里,颜色能自己改,但老截图基本都是这样)。
  • 提示符
    :CMD 开头是 C:\Users\你>,PowerShell 开头是 PS C:\Users\你> —— 多出来的 PS 就是它的身份证。

怎么打开?

  • CMD
    :Win 键 → 输入 cmd → 回车
  • PowerShell
    :Win 键 → 输入 powershell → 回车(或右键开始菜单选"终端")

⚠️ 一个容易搞混的事:Win11 之后你打开的"终端(Windows Terminal)"既不是 CMD 也不是 PowerShell——它只是一个"装这些窗口的壳",像个浏览器标签页一样,里面可以开 CMD、PowerShell、甚至 Linux 子系统。而微软给它设的默认标签页是 PowerShell(设置 → 启动 → 默认配置文件可改)。


四、常用命令对照表(收藏这张就行)

想干啥
CMD 命令
PowerShell 命令
列出文件
dirGet-ChildItem
(简写 ls / dir 也能用)
复制文件
copy a bCopy-Item a b
删除文件
del 文件名Remove-Item 文件名
换目录
cd 目录Set-Location 目录
(cd 能用)
查 IP 地址
ipconfigGet-NetIPAddress
看运行中的程序
tasklistGet-Process
测试网络
ping 地址Test-Connection 地址
(ping 也能用)
清屏
clsClear-Host
(cls 能用)

重点来了:你会发现 dir、cd、cls、ping 这些在 PowerShell 里照样能用。

为什么?因为 PowerShell 给它们做了"别名(alias)"——你敲 dir,它其实偷偷帮你跑了 Get-ChildItem。这是微软为了照顾老用户习惯特意留的。

所以:PowerShell 能干 CMD 绝大部分的活,反过来不行。


五、PowerShell 到底强在哪?(三个真实场景)

1. 管道真的能"串起来"

两个都支持 | 管道符,但传的东西不一样:

  • CMD
    :| 传的是文本——上一条命令的输出变成一堆字,下一条命令只能去"抠字";
  • PowerShell
    :| 传的是对象——下一条命令直接拿到完整数据,随便按哪个字段筛。
# 找出所有占用 CPU 超过 10 的程序,按占用排序
Get-Process | Where-Object {$_.CPU -gt 10} | Sort-Object CPU -Descending

这一行在 CMD 里基本写不出来。

2. 它是正经的编程语言

CMD 的批处理只能做很简单的循环判断,错误处理基本靠猜(%ERRORLEVEL%)。

PowerShell 支持变量、循环、函数、try/catch 错误处理、模块、还能直接调用 .NET 类库——它本质上是一门脚本语言,不是"命令集合"。

3. 能管到系统深处

进程、服务、注册表、计划任务、网络适配器、Windows 功能……PowerShell 都能直接命令行管理,还能远程管理别的电脑,甚至对接 Azure、Microsoft 365、Active Directory。

这些 CMD 一个都做不到。


六、到底什么时候用哪个?(照着选就行)

用 CMD 的情况:

  • 就是敲一条命令查个东西(ipconfig、ping、sfc /scannow、chkdsk)——打字最快;
  • 网上的老教程写的是 CMD 命令,照抄就行,别费劲翻译;
  • 公司里现成的 .bat 批处理脚本,能跑就别动;
  • 进 WinPE / 恢复环境修电脑时,给你的往往就是 CMD。

用 PowerShell 的情况:

  • 需要筛选、排序、导出结果(比如导出一份软件清单到 CSV);
  • 要写脚本自动化(批量改文件名、定时清理临时文件);
  • 要管服务、进程、注册表、计划任务;
  • 处理 JSON / CSV / XML 这类结构化数据;
  • 远程管理
    多台电脑;
  • 同一件事你要做第二次以上
    ——那就值得写成脚本。

一句糙理:一次性的小事用 CMD,要重复做或要动脑子的事用 PowerShell。


七、新手最容易踩的 5 个坑

  1. && 在 PowerShell 里用不了 网上很多命令是 命令1 && 命令2(前一个成功才跑后一个)。这在 Windows PowerShell 5.1 里不支持(PowerShell 7 才加进来)。5.1 里要么分开两条跑,要么用 ; 分隔。

  2. .ps1 脚本默认不让你跑 PowerShell 默认有执行策略(ExecutionPolicy)限制,双击 .ps1 脚本可能报错。想跑自己的脚本,需要先执行一次: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned (这是安全设计,不是 bug。CMD 的 .bat 没这道门,反而更危险。)

  3. 环境变量写法不一样 CMD 里是 %USERPROFILE%,PowerShell 里是 $env:USERPROFILE。

  4. 查帮助的方式不一样 CMD 是 命令 /?;PowerShell 是 Get-Help 命令 或 命令 -?。但注意:外部程序(比如 robocopy)还是得用 robocopy /?。

  5. 别把 PowerShell 命令粘到 CMD 里(反之亦然) Get-Process 粘进 CMD 会提示"不是内部或外部命令";CMD 的一些 for /f 语法粘进 PowerShell 也会挂。先看清楚教程写的是哪个,再决定开哪个窗口。


常见问题

Q1:那我到底该学哪个? 学 PowerShell。 它能干 CMD 所有的活(别名兼容 + 能调用任何 exe),还多了 CMD 做不到的一大堆。但 CMD 的基础命令也顺手记几个——因为网上大量排障教程是照着 CMD 写的。

Q2:PowerShell 里能直接跑 CMD 命令吗? 大部分能(ipconfig、ping、netstat、net user 这些都没问题)。少数 CMD 特有语法不行,这时候可以在 PowerShell 里写 cmd /c "命令" 强制用 CMD 跑。

Q3:CMD 会被微软取消吗? 目前没有任何官方宣布要移除 cmd.exe。个别老工具(比如 wmic)确实已经被移除、官方建议改用 PowerShell,但 CMD 本体还在,大量软件依赖它,短期内不会消失。

Q4:Windows Terminal 是什么?跟它俩什么关系? 它是窗口壳,不是命令行本身。从 Windows 11 22H2 起,微软把默认的控制台宿主换成了 Windows Terminal,CMD 和 PowerShell 都会跑在它里面。你可以把它理解成"能开多个标签页的容器",默认开的是 PowerShell。

Q5:Windows PowerShell 5.1 和 PowerShell 7 什么关系?我要装吗? 5.1 是系统自带的(不再加新功能,只修问题);7 是要另外装的新版本,跨平台、功能更强。普通用户用自带的 5.1 就够;想用新特性或跨平台再去装 7。

Q6:都需要管理员权限吗? 看命令本身。只是查询(ipconfig、dir)不需要;要改系统设置、管服务、改注册表,就得右键 → 以管理员身份运行——两个都是这个规矩。

Q7:为什么我照着教程输入命令没反应/报错? 八成是把 PowerShell 命令粘进了 CMD(或反过来),或者少了管理员权限。先确认你开的窗口是哪个,看提示符有没有 PS 前缀就知道。


总结


CMDPowerShell
输出
文本(一张纸)
对象(一张表)
适合
一次性的小事、老教程、老脚本
自动化、筛选排序、管系统、写脚本
学习成本
低
稍高,但值得
未来
仅维护,长期保留
微软主推,持续更新

记住三句话就够:

  1. CMD 给你文字,PowerShell 给你数据
    ——这是本质区别;
  2. PowerShell 能干 CMD 的活,反过来不行
    ——所以优先学 PowerShell;
  3. 照着教程抄命令时,先看是哪个窗口
    ——提示符带 PS 的是 PowerShell。

下次再遇到"打开命令提示符输入 xxx"的教程,你就知道该开哪个、为什么了。

收藏这篇,省得下次又分不清。

本文基于微软官方文档(Microsoft Learn / Microsoft Support)与 PowerShell 官方资料整理。涉及版本行为的部分以 Windows 11 / Windows PowerShell 5.1 为准;PowerShell 7 在部分语法(如 &&)上行为不同,文中已标注。

#办公软件 #效率工具 #免费神器 #数码测评 #AI #WorkBuddy

阅读原文:点击这里​


该文章在 2026/10/30 17:07:40 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号