在使用Bourne Shell,Perl,Python和Ruby等语言在Unix / Linux开源世界编写经验之后,我现在发现自己需要做一些Windows XP管理脚本。遗留环境似乎是Windows脚本宿主(WSH),它可以使用各种脚本语言,但主要语言是VBScript,并且基于COM对象。但是,未来似乎是Windows PowerShell,它基于.NET。
自从20世纪70年代苹果软件公司以来我没有做过Basic,所以我并不热衷于学习VBScript,尽管我学到了足够的东西来编写一个小脚本来安装网络驱动器。如果我要花时间真正学习这一点,我倾向于在.NET PowerShell环境中投入时间,如果真的是未来的话。几年前我做了一些C#Windows Forms编程,所以我对.NET有一些了解,这也使得PowerShell具有吸引力。
了解没有人有一个水晶球来预测微软的未来,我想听听任何PowerShell用户认为值得,或者有人知道PowerShell的严重缺点,并建议我远离它。
更新:我最终使用WSH / VBScript作为我在用户的Windows XP工作站上作为启动脚本安装的特定脚本。我所要做的就是将它复制到他们的Startup文件夹,然后我就完成了。但是,我只学到了足够的WSH才能完成这项工作。我很高兴看到PowerShell是未来,当我有更复杂的脚本任务时,我将转向PowerShell。
答案 0 :(得分:16)
这是否“值得”?
绝对。原因如下。
<强>缺点:强>
List<int>
集合如下$ l = new-Object System.Collections.Generic.List``1 [[System.Int32]]
答案 1 :(得分:13)
如果您对.NET有所了解,那么您应该会发现Powershell非常直观。特别是在Windows Server环境中,它似乎很快成为命令行管理的默认设置,因为几乎所有新发布的服务器组件都附带自定义Powershell cmdlet。因此,Powershell似乎是他们想要关注一段时间的微软之路。哎呀,到目前为止,他们甚至没有埋葬COM,所以我希望Powershell至少能活十年,因为他们将其定位为 自动化和脚本环境,用于管理任务。
此外,我发现了一个基于对象的管道,虽然我花了一段时间才习惯它,但最终功能非常强大且易于使用。当然简化了许多需要* nixes上的sed / awk的东西。
话虽这么说,我仍然使用Windows批处理文件来处理在Windows上运行但没有任何依赖性的许多东西,但这只是我的一个肮脏习惯:)
答案 2 :(得分:3)
WSH的主要优点是它自Windows 98以来默认安装,甚至可能是Windows 95,但是现在PowerShell随附Server 2008,并且可以安装在XP之后的任何东西上,它变得不那么重要了。
如果您完全控制运行脚本的服务器,我建议您使用PowerShell。
答案 3 :(得分:2)
我一直在为Windows寻找最好的脚本语言(现在仍然如此)。然而,在看到所有变体后,我最终使用JScript for WSH。虽然Powershell显然具有优势,但第一篇文章的优势似乎并不重要(内置IDE除外)。然而,缺点并未完全列出:
相反,JScript更像C,不需要显式启用脚本运行,接受相对路径,区分大小写和松散类型(与VBScript相比,两者都是脚本语言的恕我直言的优点)。 我在PowerShell中没有太多的知识,就像我在MS Technet和网络上发现的那样。
因此,对我而言,我拒绝PowerShell的两个主要原因(即使知道它可能更强大并且MS主动支持它)是:1)你必须在每台机器上手动启用脚本运行的可能性2)一般非C类我曾经认为(而不仅仅是我,我猜)。
答案 4 :(得分:1)
如果可能,请使用Posershell和内联C#,否则 - WSH,不是吗? - msdos-batch。
答案 5 :(得分:1)
现在我们在2017年,事后看来,看起来Powershell是一个不错的选择,恕我直言。