powershell和dos区别,powershell优势
PowerShell从Windows7时代开始内置到Windows系统中,可以算是微软对cmd的一次大升级。目前两者在Windows系统中共存。
与大多数接受并返回
文本
的shell不同,Windows PowerShell是基于。NET Framework公共语言运行时(CLR)和。NET框架。它接受并返回。NET框架对象
。环境中的这一根本变化带来了管理和配置Windows的新工具和新方法。只要你知道。你可以利用她做任何你想做的事情。1. PowerShell 更加 “powerful”
虽然微软的名字PowerShell有吹嘘之嫌(我以前也是这么认为的),但事实上并非如此。PowerShell足够强大,可以在几分钟内杀死Linux上的bash,更不用说备受批评的cmd了。
2. PowerShell 全面支持面向对象
PowerShell依赖于完整的。NET编程系统,其脚本更容易编写,健壮性大大提高。反过来看cmd,那些完全被各种命令堆砌起来的指令,简直就是“小打小闹”。
3. 从 cmd 迁移到 PowerShell 成本几乎为零
如果你对老朋友cmd充满感情,无法割舍,那完全没问题!因为PowerShell可以看作是cmd的超集,所有常见的命令如dir、cd、ipconfig等。可以直接在PowerShell中使用。但是背后的实现完全不一样。PowerShell是基于完全面向对象的,它通过“别名”函数和对象来支持这些旧命令。
4. 诱人的管道操作
流水线操作的灵感来源于Linux的Shell,但是由于PowerShell把所有东西都包装成对象,而不是直接处理字符串,所以它的流水线操作远比Linux的shell灵活。
例如:
PS C:UsersHaley ls sort-Descending Name Format-Table Name,Mode Name Mode--VirtualBox VMs d-Videos d-r-Searches d-r-Saved Games d-r-Pictures d-r-one drive d-r-Music d-r-Links d-r-
该命令列出当前路径中的所有文件,按名称降序排列,并以表格形式输出,只显示名称和模式两个字段。
5. 绝对完备的帮助文档
任何函数和对象都可以通过help *命令查看其帮助文档(准确的说应该是Get-help函数,这是一种更“面向对象”的命名方式,Help是它的别名)。如果不能理解,添加-examples参数有应用示例。如果您仍然不能理解,请添加-online参数来打开完整的联机帮助文档。不得不佩服微软的一站式服务。
例如,关于ls的帮助文档如下:
PS C:用户安全帮助限位开关(Limit Switch)名称Get-ChildItem摘要获取一个或多个指定位置的项和子项。语法get-child item[[-Filter]String][-Attributes { ReadOnly Hidden System Directory Archive Device Normal Temporary SparseFile repas point Compressed Offline not content indexed Encrypted integrity stream NoScrubData }][-Depth uint 32][-Directory][-Exclude String[]][-File][-Force][-Hidden][-Include String[]-literal Path String[][-Name][-ReadOnly][-Recurse][-System][-use transaction][common repas point说明Get-ChildItem cmdlet获取一个或多个指定位置的项目。如果项是容器,它将获取容器内的项,称为子项。您可以使用递归参数获取所有子容器中的项目。位置可以是文件系统位置,如目录,也可以是由不同的Windows PowerSh ell提供程序公开的位置,如注册表配置单元或证书存储。相关链接网络版:http://go.microsoft.com/fwlink/?LinkId=821580获取-项目获取-位置获取-流程获取-PSProvider备注若要查看示例,请键入: get-help Get-ChildItem -examples .有关详细信息,请键入: get-help Get-ChildItem -detailed .若要获取技术信息,请键入: get-help Get-ChildItem -full .有关在线帮助,请键入: get-help Get-ChildItem -online
6. 支持基本的数学运算和数组操作(加减乘除模),打开就能当计算器用
PS C:用户shaley 1 1 2 PS C:用户shaley 3 * 5 15 PS C:用户shaley0x ab 171 PS C:用户shaley 1kb 1024 PS C:用户shaley 1mb/1kb 1024
7. 良好的脚本编程体验
管理员脚本的语法与高级编程语言非常相近,例如其分支语句if(…){} else{},循环语句对于(…){}与C语言别无二致,因而大大提高了编程体验。
8. 拥有丰富的字符串操作对象和函数,全面支持正则表达式
字符串处理是壳脚本的主要任务,正则表达式的重要性也无需多说。
9. 支持重定向,读写文件易如反掌
管理员原生支持将结果导出到html、csv、xml等文件,也可以通过重定向从文件中读取内容。
例如:
PS C:UsersHaley ls Select-Object Mode,Name Export-Csv ~/desktop/test。战斗支援车
这样就把当前目录下的所有文件名-读写权限保存到了一个战斗支援车文件中。
10. 支持 Debug
虽然这个功能很少用到,但支持调试是走向完备编程语言不可或缺的一项功能。