为什么我会使用Powershell而不是C#?

时间:2009-05-26 07:52:28

标签: c# powershell

我知道Powershell非常强大,因为它是一种脚本语言,您可以访问整个.Net框架(这就是我所知道的)。但是当我能用C#编写完全相同的东西时,我很难理解Powershell的大肆宣传是什么?

4 个答案:

答案 0 :(得分:16)

我认为你问的是错误的问题。它应该是:“当我可以使用Powershell对相同的东西进行编码时,我为什么要使用C#?”

这是脚本与重新编译的软件的旧论点。脚本解决方案更灵活(您只需要记事本来编辑脚本,不需要编译器)。

对于一个小任务,编写,部署和更改脚本比在Visual Studio中创建项目,编译,将其部署到目标,更正代码,再次编译,再次部署,编写更快...... < / p>

对于任何更大的任务,我绝对更喜欢编译我的代码的IDE。仅在破坏的构建上的错误消息对于找到原因是非常有帮助的。 (在编译软件中运行时效率通常更好,但是对于现代CPU来说,它可以达到几毫秒的差异,因此对于大多数项目来说,它不再重要。)

可以在C#或Powershell中执行任何类型的项目。这并不意味着你应该

答案 1 :(得分:8)

当不使用Powershell作为shell而是使用编程环境时,您可以将Powershell视为一种交互式.NET游乐场。我从不使用Powershell进行GUI原型设计,但我过去曾使用过它来使用.NET对象及其解决特定问题的方法。只需更改命令行比每次进行更改时执行编辑/保存/编译/运行循环更有效率。

此外,两种语言的适当域名都非常不同。 Powershell的核心是一个管理和自动化工具,可以简化对许多事物的访问,这些事情可能更难以从其他环境中使用,例如Registry,证书存储,WMI等。

您可能不想使用Powershell编写企业级数据库应用程序,并且您可能不希望编写C#程序只是为了复制文件系统中的某些内容。

答案 2 :(得分:1)

  • 这不是编译语言。
  • 它有一个插件生态系统,有许多“库”,用于执行各种特定领域的事情,如复制文件,玩AD,Exchange。
  • 这是一套适合不同的,略微重叠的工作的工具。
  • 它比CMD.EXE和其他需要适应8K RAM的命令shell演变的功能强大且一致。

为什么你还在使用C#,ILASM可以用更多的控制来做所有事情,而你只是在BCL中调用东西。

答案 3 :(得分:0)

我将您的问题概括为以下内容:

  

我为什么要使用(更高级别的语言   我对此知之甚少(更低)   水平语言我知道更多关于)?

更高级语言的要点是抽象常见任务,以便更快地编写。许多提出这个问题的人都无法想到更高层次语言的这种好处,因为他们已经习惯了他们的低级语言。

最后,这一切都取决于你是否愿意学习更高层次语言的抽象,希望你能够像下层语言一样精通它。