网络百科 百科 powershell比cmd(powershell和命令窗口)

powershell比cmd(powershell和命令窗口)

PowerShell从Windows7时代就内置到Windows系统中,可以算是微软对cmd的一次大升级。目前两者在Windows系统中共存。

与大多数接受并返回文本的shell不同,Windows PowerShell是基于。NET Framework公共语言运行时(CLR)和。NET框架。

它接受并返回。NET Framework对象。环境中的这一根本变化带来了管理和配置Windows的新工具和新方法。只要你知道。net足够好,你可以用它做任何你想做的事情。

1.PowerShell更“强大”。虽然微软的名字“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的外壳之上。

例如:

PS C:UsersHaley ls | sort-Descending Name | Format-Table Name,Mode Name Mode-VirtualBox VMs d-Videos d-r-Searches d-r-保存的游戏d-r-Pictures d-r-one drive d-r-Music d-r-Links d-r-这条命令列出当前路径下的所有文件,

5.绝对完整的帮助文档任何函数和对象都可以通过help *命令查看其帮助文档(准确的说应该是Get-help函数,这是一种更“面向对象”的命名方式,Help是其别名)。如果你不明白,

添加-examples参数将导致应用程序示例。如果你还是不明白,添加-online参数会打开一个完整的在线帮助文档。不得不佩服微软的一站式服务很到位。

例如,关于ls的帮助文档如下:

8.拥有丰富的字符串操作对象和函数,全面支持正则表达式的字符串处理是shell脚本的主要任务,正则表达式的重要性自不必说。

9.支持重定向,很容易读写文件。PowerShell原生支持将结果导出为html、csv、xml等文件,也可以通过重定向从文件中读取内容。

例如:

PSC:users haleys | select-object mode,name | export-csv ~/desktop/test . CSV这样,当前目录下的所有文件名-读写权限都保存在一个CSV文件中。

10.对调试的支持虽然这个函数很少使用,但是对于一个完整的编程语言来说,支持调试是一个不可或缺的函数。