CMD Shell和PowerShell

目录

1. CMD Shell和PowerShell

2. cmd和cmdlet

2.1 cmd和cmdlet的区别

2.2 兼容性

2.3 常用cmdlet命令

3. 管道和管道符

4. 脚本编程


1. CMD Shell和PowerShell

Windows commands | Microsoft Learn

Windows有两个命令行工具:CMD Shell和PowerShell

  • CMD Shell:
    • 第一个内置到Windows系统中的shell,用于使用.bat的批处理脚本执行某些任务。
    • 只可以运行传统的Windows命令
      • DOS系统的产物,所以它的功能很有限。
  • PowerShell:
    • 扩展CMD Shell的功能,提供一个完整的脚本语言运行环境。
    • 既可以运行传统的Windows命令,也可以运行cmdlet的PowerShell命令。

对比如下:

2. cmd和cmdlet

2.1 cmd和cmdlet的区别

① 功能性不同

  • cmd命令是指传统的Windows命令
  • cmdlet类似于Windows命令,但是提供了更多可扩展的脚本语言功能。

例如:

cd是切换目录命令,Set-Location也是切换目录命令,二者的区别在于:Set-Location命令不仅能用于切换文件目录,也可以用于切换注册表目录、证书存储目录等。这使得PowerShell的Set-Location命令比CMD Shell中的cd命令更强大。

② 输出格式不同

  • CMD的输出是纯文本的字符串,这使得对输出进行解析和处理变得困难。
  • cmdlet的输出是.net对象,支持更复杂的数据操作。这种对象模型使得数据在管道中传递时能够保留其结构。--详见下文
    • cmdlet是由.net编写的,其命令规范遵循 动词-名词 的格式。例如:Get-Process、Set-Location等。

2.2 兼容性

为了实现cmdlet对cmd的兼容,Windows发明了一种alias(别名)的机制,旧版的cmd命令在PowerShell中通过别名链接到一个cmdlet命令。如下所示:

① 查看所有cmd命令别称

注意:此处展示的不全是windows下旧的cmd命令,其中也有一些linux的命令,例如:ls

② 查看指定cmd命令别称

注意:虽然cmd中的cd和PowerShell中的cd长得一样,功能类似,但是底层实现已经完全变了。

2.3 常用cmdlet命令

① Get-Command:获取所有PowerShell支持的命令

② Get-Help <cmdlet命令>:查看指定命令的帮助文档

③ export-csv:指定输出格式为csv

3. 管道和管道符

管道符:|,功能:将上个命令的输出作为下个命令的输入

例如:

① 获取前五个CPU占用率最高的进程

4. 脚本编程

CMD Shell对应的脚本是.bat文件,PowerShell对应的脚本是.ps1文件,二者的区别在于:

  • .bat脚本编程非常难用,例如:
    • .bat不支持if嵌套,实际编程时需要大量的goto语句,非常不友好
  • PowerShell的编程习惯更像现代化的编程语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值