首页 > 开发 > PowerShell > 正文

浅谈CMD和win powershell的区别

2020-05-30 20:21:20
字体:
来源:转载
供稿:网友

cmd是和powershell都可以做命令行交互,批处理和powershell脚本功能也相当。

我不知道你怎么理解cmd,但下面是powershell是基于.net的,只要你足够了解.net,你可以使用她做任何你想做的事情。

Windows PowerShell 是专为系统管理员设计的新 Windows 命令行 shell。Windows PowerShell 包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

与接受和返回文本的大多数 shell 不同,Windows PowerShell 是在 .NET Framework 公共语言运行时 (CLR) 和 .NET Framework 的基础上构建的,它接受和返回 .NET Framework 对象。环境中的这一根本更改带来了管理和配置 Windows 的全新工具和方法。

Windows PowerShell 引入了 cmdlet(读作“command-let”)的概念,这是内置到 shell 中的一个简单的单一功能命令行工具。可以分别使用每个 cmdlet,但是组合使用这些简单的工具执行复杂任务时才发挥其作用。Windows PowerShell 包括一百多个基本的核心 cmdlet,您可以编写自己的 cmdlet 并与其他用户共享它们。

与许多 shell 一样,Windows PowerShell 为您提供了对计算机上文件系统的访问。此外,使用 Windows PowerShell 提供程序还可以访问其他数据存储,如注册表和数字签名证书存储,就像访问文件系统一样容易。

简单的说,Powershell是cmd的超集,换句话说,cmd能做的事情,Powershell都能做,但是Powershell还能额外做许多cmd不能做的活。

主要是系统管理功能、脚本语言和在线帮助更强大,你确实可以只把它当成cmd来用,也可以学和用得更深

powershell的优点

没有做不到,只有想不到。用 PowerShell 甚至可以 Load C/C++ 写的 dll,然后执行里面的代码,COM 就不说了。跑题了,题主问不同,窃以为 PowerShell 和 cmd 最大的不同,并且也是和其它 *nix Shell 最大的不同在于 PowerShell 的 pipe 传递的是 .net object,而不是 raw 字符串,于是这就打开了一扇神奇的大门,因为 PowerShell 的一切组件都可以和谐地共存,彼此不用互相猜忌,不用猜你喂给我的数据合不合法,也不用担心我喂给你的参数格式对不对。大家共享一个 CLR,拥有丰富的 metadata,自由自在地在 .net 的世界里徜徉和探索。顺带宣传一下 https://chocolatey.org/ ,Windows 的 apt-get,基于 PowerShell

PowerShell为什么强大

微软是一个很”低调”的公司,取名为微软,感觉有“微微软下去”的意思,这是个玩笑了。windows 操作系统 和office办公软件,如此之优秀,微软也没敢命名为PowerOS 和 PowerOffice,但是在Monad(PowerShell的前身)发布后的第二年(2006年),微软就直接就发布了Windows PowerShell 1.0,并且”大言不惭“地命名为PowerShell,这也有点太不淡定了。

今天我根据自己的体验来稍微总结一下为什么PowerShell如此之强大。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表