想要从Batch文件迁移并使用......?

时间:2011-06-26 08:13:22

标签: .net scripting powershell

我们目前使用批处理文件加载程序,执行脚本文件并通过调用sql sefver实用程序cmdutil,dtexec和osql来调用存储过程。

根据返回的退出代码的值,我们确定要运行的下一步。

批处理文件对我来说似乎有点原始,我想我会更乐意在驱动程序.NET程序中编写这个“作业控制流”代码,但我认为大多数开发人员会选择使用某种脚本语言来这样做。

我正在考虑使用VB WSH Script,因为它似乎给了我更好的语言结构(例如,如果那么其他)和访问COM对象,但我想即使这有点过时了,我应该看看Powershell

我的问题是:

使用Powershell而不是编译的.NET代码来开发工作流程控制程序有哪些优点/不足?我怀疑使用Visual Studio IDE进行开发环境和编译时检查会比使用脚本更有效率。

我正在做一个hello world应用程序尝试使用我的一个来自PS的.NET库,我得到的印象是PS只是打击了糟糕的代码。与编译的.NET代码相比,它是否具有足够的错误处理能力?

4 个答案:

答案 0 :(得分:5)

Powershell可以在批处理文件中执行任何操作,也可以使用C#执行任何操作。

这是一种非常好的脚本语言(你可以在Powershell中轻松地使用Ruby和Python编写脚本),并且它也有一些不错的IDE。鉴于它在VS中并不完全支持,在该领域也有一些努力,如PowerGUI VS

使用Powershell,您可以像使用其他地方一样使用退出代码进行错误管理,也可以使用try-catch例外和trapthrow等其他构造进行错误管理。错误管理在Powershell中很丰富。您还可以使用像Add-Type这样的cmdlet在Powershell中使用C#代码。

答案的主观部分:

  

我怀疑发展   环境和编译时间检查   使用Visual Studio IDE会   使用脚本我的效率更高。

您似乎想要做的似乎是编写脚本的理想选择。而Powershell是Windows上脚本编写的自然选择。我没有看到“编译时检查”如何提高你的工作效率,我认为脚本语言具有提高工作效率的优势。

我真的不明白你的意思PS just blows over bad code - 但是Powershell就像任何其他语言一样,不好的代码取决于你编写代码的方式。

答案 1 :(得分:1)

也许有可能使用ironpython?当然,如果你更喜欢python和powershell,并且能够在运行脚本的任何机器上安装它。在visual studio中你也有一个很好的开发环境。

答案 2 :(得分:1)

Powershell / .net dev取决于您拥有的开发人员类型。对于您正在查看的任务类型,可能没有很多不同的性能。可能的答案是在.net中编码并使用powershell将它们放在一起,因为powershell可以与.net集成并且所有方法都很好。从.net访问com对象并不是那么有趣,在PowerShell中更容易..

答案 3 :(得分:1)

我同意答案,说你可以用PowerShell做任何事情。您可以。并且错误处理对于典型的流量控制来说已经足够了。我感兴趣的是你关于脚本与编译语言的问题。

这些工具之间存在根本区别。编译语言是黑盒子,而脚本是可塑的。两者对于各自的开发人员同样具有可塑性,但是一旦程序被编译并部署到100个服务器,.exe文件对于除开发人员之外的所有人都是不可变的和不透明的。当您将脚本部署到100台服务器时,100位管理员都可以查看它,借用它,以灵活的新方式使用它。

PowerShell允许我的团队中的5位管理员在没有MSDN许可证的情况下浏览我的代码,就在代码运行的服务器上。他们可以借用,调整并了解正在发生的事情。其他团队的管理员也可以这样做,而无需确定要检出的CVS存储库。

我会推荐小脚本,轻松管道,适度评论。有一天,他们实际上可能会被某人阅读。 : - )