我想用C#编写简单的脚本。我通常会使用.bat或4NT .btm文件。复制文件,解析文本,询问用户输入等。相当简单,但在批处理文件中执行此操作非常困难(例如,没有例外)。
我熟悉像AxScript这样的命令行“脚本”包装器,这样我就可以使用它。我缺少的是简单的文件操作框架。我希望能够做cd(“..”),copy(srcFile,destFile)类型的功能。
我尝试过的工具:
NANT,我们在构建过程中使用它。不是一个好的脚本工具。疯狂冗长的XML语法并添加一个简单的函数,您必须编写扩展程序集。不能内联。
PowerShell的。看起来很棒,但我只是无法切换到我的主要shell。与4NT有太多不同。无论我做什么都需要从普通的命令提示符运行而不需要特殊的shell来运行它。 PowerShell可以用作脚本执行程序吗?
的Perl / Python的/红宝石。真的讨厌学习一种全新的语言和框架来进行批处理文件操作。无法投入我需要的时间来做这件事。此外,我们的工具链是99%的.NET商店,我真的想利用我们现有的经验和代码库。
是否有框架试图解决您使用过的“在C#中制作批处理文件”的问题?
我希望C#/ .NET具有典型cmd.exe shell语言的立即模式类型功能。我一个人想要这样的东西吗?
答案 0 :(得分:26)
我会试着克服PowerShell的焦虑,因为它是未来的外壳。所有来自Microsoft的软件都将它用作管理界面,尤其是2.0版本非常有用。
我大部分时间都是C#开发人员,但PowerShell解决了临时项目的整个“WindowsApplication42”问题。 PowerShell使您可以在命令行shell中完全访问.NET框架,因此即使您不知道如何在PowerShell中执行某些操作,您也很可能知道如何在.NET中执行此操作。
答案 1 :(得分:3)
IronPython和IronRuby 执行让您利用所有.NET“经验和代码库”(但他们不会回答您对学习新语言的反对意见)。
答案 2 :(得分:2)
如果您有任何bash书呆子,您可以随时尝试cygwin。
另外请记住,Python最初是作为“粘合剂”使用的。如果您使用上述IronPython,那么将预先编写的C#类绑定在一起非常容易。
答案 3 :(得分:1)
如果你绑定到MS,PowerShell肯定是要走的路。但我不喜欢它。
我个人更多地使用MSBuild脚本,并且希望有一天能看到Mono C#Shell来到Windows。
答案 4 :(得分:1)
我认为CS-Script可能是您理想的解决方案。