标准化一个Windows脚本语言

我不太确定在StackOverflow中这样做是否会更好,如果您认为它更合适,可以随意移动它。

无论如何,在这个问题上…

情况
我们目前有一个VBScript,DOSbatch file和一些PowerShell脚本的混杂,执行业务中的各种任务。

这些任务的范围从查明谁是通过IPlogin到特定的机器,到相当复杂的文本处理和数据库查询(SQL Server 2005/2008)

VbScript实际上不是一个很好的语言,虽然它有很好的debugging支持,但PowerShell更好,但是(免费)debugging支持相当简单,batch file越less越好

问题
不想开始一场火焰战争(只有客观的评论请!)我想标准化一个脚本语言,要求是: –

  • 一定要玩Windows
  • 良好的debugging支持(与Visual Studio或Eclipse相同的function将会是完美的,我会解决一些与当前VBScriptdebugging器一样好的问题)
  • 良好的exceptionpipe理
  • 良好的内存pipe理(垃圾收集)
  • 良好的支持连接到数据库(SQL Server)
  • COM支持将是一个优势
  • 最好是轻松(或不安装),这样我们可以把它放在服务器上而不会破坏任何东西
  • 性能不是关键,这些大多是通宵工作
  • 易学(ish)学习的公司主要用于C#/ Java / VBScript / VBA

我会对你的想法/推荐很感兴趣

PowerShell 2 ,毫无疑问。 我认为它能够满足您的所有需求,其集成脚本环境不会突出语法,并具有良好的debugging支持,包括断点和逐步执行。

除非你正在寻找wmi和dotnet的细节,我发现Python是所有平台的优秀脚本工具。 它涵盖了几乎所有的要求

否则,我想是PowerShell的路要走,虽然它需要安装dotnet框架。

我不喜欢ISE,但是我被Visual Studio IDE用于其他开发。 有些人喜欢免费的PowerGUI更换: http : //www.powergui.org 。 它似乎具有类似于Intellisense的function。

我能想到的PowerShell唯一的反对意见就是它需要框架,并且需要3.5框架来提供一些V2高级function。 如果您需要将其部署到数百或数千台机器,则不完全是轻量级组件。

作为答案中的一个重要因素,我会问哪种脚本语言最容易部署到您的环境中。 考虑以下脚本语言和全Windows基础结构:

  • CMD (batch file):已经部署到所有的系统,因为永远build立到Windows。
  • vbscript :已经部署到所有的系统,因为Win98以后内置到Windows。
  • PowerShell :内置于Windows 2008R2,Windows 7以及其上运行Exchange 2007的任何内容。 必须部署到您希望脚本运行的所有其他系统,而不是部署到您将从其他地方运行的脚本查询的系统。 EG Powershell可以在名为hostA的Win7系统上运行,并查询运行Windows XP的hostB的属性,该主机没有安装Powershell。
  • Perl :必须部署到脚本运行的所有系统。
  • Python :必须部署到脚本将运行的所有系统。

所以,除非我想要将后面的脚本引擎之一部署到我的所有系统,否则我将在VBscript和/或CMD上进行标准化。 其中,vbscript要强大得多 ,虽然作为一个老的批处理脚本,我仍然有一个CMD的弱点。 当它可以完成这项工作时,通常需要更less的打字! 但是,如果我不得不select,那么为了可读性和灵活性,将会是vbscript。 诸如PrimalScript之类的vbscript IDE只是一个Google 而已 。

如果我有构build一个全新系统运行Win2008R2和Win7的豪华体验,我将在PowerShell上进行标准化。

我们一直在使用VBScript,并且最近才开始研究PowerShell(V2)。 VBScript有它的缺点,但它为我们提供了很好的服务,所以我没有理由放弃过去的投资。 另一方面,PowerShell将会成为Windows脚本语言标准,并且支持一定会变得更好。 因此,对于我们来说,未来几年它将成为一个混合的脚本环境。

顺便说一下,当我查看你的需求列表时,除了关于debugging支持和关于exceptionpipe理(但是VBScripterror handling也不是很好)之外,PowerShell很容易实现。 另外,PowerShell相对于VBScript的一大优点是它可以访问.Net Framework。

我会使用Visual C#2005或2008 Express。 它满足您的所有需求,Visual Studio的Express版本是免费的(如在啤酒中),.NET Framework(特别是如果您select2005年)可能已经在您的服务器上,它可以让您利用一些现有的开发一些真正花哨的东西的技能。

当然,这不是真正的“脚本”,但我个人认为(可选)添加GUI元素对于其他任务可能是有利的。