首先,我希望我不要复制另一篇文章。 如果是的话,我会马上删除。
我已经浏览了本网站上的许多问题/答案,试图find我应该使用的脚本语言,并且我看到很多人推荐PowerShell,尤其是如果他们对我自己的脚本完全陌生的话。
我工作的环境大约有150台机器,具有从XP到Server 2008 R2 Enterprise的各种MS操作系统。
我看到我的一个同事使用CSSCRIPT做了很多他所做的事情……我们昵称他为剧本之王。 他的代码如此记忆,以至于他甚至不知道如何学习它,或者什么脚本语言对我来说最好。
我正在看PowerShell,因为其他post似乎表明这一点。 我不想在我所有的150台机器上安装一些东西来工作。 我希望能够远程运行一个脚本来移动文件,更新文件,收集有关机器和他们的registry和其他各种信息等的英特尔。
在这两种脚本语言或任何其他语言之间(因为我从字面上来说是全新的,想要学习),有什么build议?
如果这是重复的,我很抱歉。 我找不到这个具体的问题,但有很多非常密切的相关。
如果你在微软的环境下工作,那么答案就是Powershell。
Powershell实际上是微软pipe理员向前发展的要求。 它旨在以各种方式replace和取代VBscript。
更不用说,这是MS所做的最令人敬畏的事情……也许永远!
关于你的同事用于脚本的问题 – 我不知道“csscript”,但是我知道“cscript”是VBScript脚本主机的命令行版本。 所以也许是你正在看的VBscript。 这也是一种非常stream行的微软脚本语言。 但它不像Powershell那样现代。
为了补充Ryan的回答,Powershell脚本function是Microsoft CEC(通用工程标准)的一部分,这意味着所有发布的MS产品必须提供一些Powershell脚本function。
许多产品都将此放在心上,在VMM中,所有的pipe理都是通过Powershell完成的。 实际上,GUI只是构buildPowerShell脚本来实现您要求的操作。 在Exchange 2007和2010中,只有通过Powershell才能执行的pipe理操作(当然,这些并不是非常常见的操作)。
Powershell的好处是它build立在.Net上,可以访问所有的.Netfunction(你可以经常使用C#的例子来找出如何直接从Powershell中的.Net处理事物)。
您不是通过pipe道传递文本,而是传递完全形成的对象,允许cmdlet进一步向下访问该对象的所有属性和方法,而不需要任何介入的小命令来关心它们。 这也可以使代码非常可重用。
最后,Powershell是以pipe理员为中心而不是以开发人员为中心的。 PowerShell的标准允许pipe理员以相当直观的方式发现语言和function,同时还可以让开发人员和高级脚本编写人员访问所有潜在的好东西。 在一个理想的世界里,你将有一个cmdlet来完成所有需要完成的小任务,而在没有这个任务的地方,你可以通过powershell直接以.netforms访问.Net,或者直接在.Net中写一个cmdlet,或者找一个开发者也是这样做的。