Python,PowerShell还是其他?

eco*_*sis 32 python powershell scripting

Python,PowerShell和其他脚本环境有哪些优势?我们希望标准化脚本,目前使用bat和cmd文件作为标准.我认为Python比这些更好,但我也在研究PowerShell和其他脚本工具.

这些脚本将用于触发诸如wget等进程来调用Web服务,或者需要使用特定参数以特定顺序运行的其他应用程序/工具.

我们主要使用Windows堆栈,但我们很有可能在将来需要支持Unix.

Mat*_*ner 46

如果您希望在Windows机器上替换CMD和BAT脚本,Python可以作为一个出色的通用工具,也可以编写为在(L)inux框中运行脚本.它是一种优秀,灵活的语言,可以处理您抛出的许多任务.

话虽这么说,PowerShell是一个非常通用的工具,用于管理各种Windows盒子; 它具有.NET的所有功能,还有更多的接口可用于MS产品,如Exchange和Active Directory,这些都是一个节省时间的方法.根据您的情况,您可能会因为MS产品可用的接口而比其他脚本语言更多地使用PS,而且我知道MS似乎已经承诺在许多产品中提供这些API.PowerShell安装在所有当前版本的Windows(Windows 7 +,Windows Server 2008+)上,并且可以很容易地安装在旧版本上.

为了解决您的脚本将用于启动其他进程的编辑,我认为在这种情况下,任何一种工具都符合要求.如果你计划在脚本中添加任何管理任务而不仅仅是服务调用,我会推荐PS,但如果你坚持你所描述的,那么Python就是好的.

  • +1平衡的答案. (6认同)

Jas*_*Dev 20

我们希望标准化脚本,目前使用bat和cmd文件作为标准.

听起来Windows是您的主要环境.

如果是这样,PowerShell将比Python好得多.

  • PowerShell包含在Windows Server 2008中.无需在每个新的服务器上部署/安装Python运行时 .
  • 整个Microsoft服务器相关软件(Exchange,Systems Center等)正在转换到PowerShell cmdlet以获取功能和扩展
  • 第三方供应商(例如SCOM插件)也将使用PowerShell脚本/ cmdlet来公开功能

我在使用Python方面比使用PowerShell更有经验,但就微软生态系统而言,写作是在墙上:与PowerShell一起使用.否则,你只会反对谷歌并不断在Python和其他人的cmdlet之间互动.

仅仅因为你可以import win32com.client在Python中编写代码并不能在Windows环境中与PowerShell平等对待.


Mic*_*lon 15

IronPython可以访问所有与其他.NET语言相同的.NET程序集,以便在Windows上编写依赖于系统的脚本.但是,相同的Python知识可用于在Linux,Solaris,BSD或OS/X上编写类似的脚本.如果在Windows上使用标准C Python,则可以访问任何COM对象,并且可以直接将VBA示例转换为Python代码.SPAMBayes Outlook插件是一个很好的例子,说明你可以走多远.http://spambayes.sourceforge.net/

Python的最佳功能是"包含电池"标准库,即使这不是与IronPython一起发布的,如果您只是将IronPython指向CPython中已安装的库文件夹,其中大部分都可以使用.实际上,大多数纯Python库,即没有编译的C或C++模块,都可以与IronPython一起使用.在Windows上,您还可以选择通过Cygwin.com安装Python,然后允许您使用通常被认为仅限UNIX的许多模块.如果您必须维护跨平台脚本并且您更喜欢每个操作系统的一致性而不是特殊情况编码,那么这可能是有用的.

如果您需要利用某些Java类,那么Jython允许您使用您知道的相同Python语言来利用它.将它与一个很好的消息排队系统(如RabbitMQ)相结合,您可以在多台计算机上配备Python,Jython和IronPython脚本,这些脚本都可以完成工作.

还有大量的第三方Python模块可供选择,您可以花几个月的时间在美国网上搜寻新的发现.这意味着当您需要的东西不是标准Python库的一部分时,谷歌搜索通常会提供一些解决方案.

用于替换bash,CMD和BAT文件的脚本的一些有用的Python模块是PEXPECT http://www.noah.org/wiki/Pexpect和Python WMI http://timgolden.me.uk/python/wmi/index.html

但是,最终,Python也适用于不需要任何特殊功能的简单直接脚本......

  • IronPython优于PowerShell的另一个优点是,对于后端版操作系统,只要你已经存在.net,它就可以通过XCOPY部署推出. (3认同)