pet*_*bil 9 windows powershell
我最近听说过很多关于PowerShell的事情,并且想知道是否有任何理由使用PowerShell而不是(例如)控制台应用程序或在幕后使用WMI的Windows服务.
PowerShell有哪些优点和优势?它是为了什么?
Kei*_*ill 12
PowerShell是一个交互式shell,如KornShell,Bash和er CMD.exe.和那些shell一样,它支持脚本语言(KSH,Bash,Batch).但是,PowerShell构建于.NET之上,并公开.NET类型,允许您创建和操作许多.NET类型.因此,您可以使用PowerShell构建可以执行典型.NET控制台应用程序可以执行的操作的脚本.
编写小型实用程序控制台应用程序时要考虑的一个因素是编写解析和使用代码所需的工作量与实现exe的基本目的所需的代码相比.我已经转而编写了许多实用程序作为PowerShell脚本,因为PowerShell提供了一个参数解析引擎,它具有许多不错的功能:命名/位置参数,必需/可选参数,参数默认值,参数名称的部分规范等.
PowerShell 2.0通过高级功能在此区域(验证属性等)中添加了更多功能.您可以轻松地将"手册页"编写为脚本或高级功能的注释.虽然我过去花费50-80%的时间在C#控制台应用程序中使用片状,非标准(是 - 或/或两者?)参数解析代码,但我让PowerShell为我处理.但我确实相信Jacob说正确的是需要更低级别的.NET代码的复杂任务更容易(Cx/VB/Visual Studio中的静态编译时间检查)和调试.
我希望看到通过BCL中的一组.NET类型公开PowerShell参数解析功能,这样您就可以编写控制台应用程序并获得PowerShell的解析功能.很久以前我使用了一个名为Genghis的开源组件,但我认为它已被放弃了.在.NET 4.0测试期间的某个时刻,命令行解析器出现在框架中,但在RTM之前被删除.我不认为这个命令行解析器与PowerShell有任何连接 - 它应该有IMO.所以它可能是一件好事.
PowerShell可以执行.NET控制台应用程序可以执行的许多操作,但它仍然是一种脚本语言.但它比批处理文件语言或VBScript/JScript要好得多.它的优点包括能够使用类似UNIX的管道和过滤器,但使用对象而不是愚蠢的文本.它还可以创建CLR和COM对象并调用它们的属性和方法.
但是,如果你编写任何复杂的东西,那么编写一个编译好的程序就更好了,这样你就可以在编译时找到错误并拥有更好的IDE.此外,如果要运行PowerShell脚本,则必须在运行它的计算机上安装PowerShell.
归档时间: |
|
查看次数: |
1247 次 |
最近记录: |