哪些脚本语言对Windows自动化有用?
哪些脚本语言对Windows自动化有用?
Answers:
从Windows 7和Server 2008开始,考虑将PowerShell随Windows一起提供是合理的,而且管理服务器软件(例如Lync和Exchange)也是基本的,因为它们具有一整套命令。可用功能列表越来越多,有关详细信息,请参见脚本中心。
Windows脚本主机(WSH)从技术上讲是ActiveX脚本引擎的脚本主机。VBScript和JScript(Microsoft的JavaScript实现)是默认安装的两个引擎。还有许多其他开源软件,包括Perl,PHP和Ruby。
使用与VB6和VB.NET相似的语法,VBScript缺乏对.NET类的轻松访问(Powershell是在.NET上编写的,因此可以访问所有.NET函数)。VBScript主要利用WMI服务及其公开的对象。
示例:这将创建一个还原点。
Set wmi, whatName, errResults
wmi = GetObject("winmgmts:\\.\root\default:Systemrestore")
whatName = InputBox("Enter a name for the Restore Point",WScript.ScriptName)
errResults = wmi.CreateRestorePoint (whatName, 12, 100)
If errResults <> 0 then
Wscript.Echo "Error " & errResults & " : Unable to create Restore Point"
End If
您也可以使用ECMAScript编写相同的脚本:
var wmi = WScript.GetObject("winmgmts:\\.\root\default:Systemrestore");
var whatName = WSHInputBox("Enter a name for the Restore Point",Script.ScriptName);
var errResults = wmi.CreateRestorePoint(whatName, 12, 100);
if(errResults != 0) {
WScript.Echo("Error "+ err + " : Unable to create Restore Point");
}
当然,还有不错的批处理文件。他们不需要介绍。
即使在Windows 7中,我仍然写DOS批处理文件。对于大多数任务,这仍然可以很好地工作,并且使用起来非常简单(此外,随着时间的推移,许多DOS命令(例如“ FOR”)也得到了改进,并提供了更多功能。选项和功能是十年前才推出的)。
对我来说,DOS批处理文件仍然是Windows的主要脚本语言(它肯定是传统的),但是每个人的需求和偏好都有所不同。DOS批处理文件有很多不能做的事情(脚本语言也会造成限制),并且在极少数情况下遇到这种情况,然后我会查看其他选择(通常是Perl,或者有时是是编写一个小型程序还是整个应用程序)。
了解您需要完成的工作是决定使用哪些工具的非常重要的一步。熟悉工具是另一个可能限制您选择的重要方面。如果您试图确定学习哪种脚本语言,那么希望对您有所帮助。
cmd
确实是一种怪诞的事情,很容易让我不幸使用过的WORST shell脚本语言。
那要看你问谁。有些人永远不会离开批处理,有些人喜欢vbscript,有些人喜欢powershell,有些人喜欢AutoIt。然后还有一些独立于平台的工具,例如Python和Perl,其中有些人会为所有事情发誓。
我想Windows的正式脚本“语言”应该是Windows Script Host(从Win95开始就是这样)。
从技术上讲,WSH本身并不是一种语言,而是一种暴露COM接口以允许您(几乎)使用所需脚本语言的环境(不是GUI)来执行OS事务,甚至没有内置本机方式的事物。语言(例如,Ruby没有内置登录Windows的方式,或者TCL / TK没有内置显示“运行”对话框的方式)。
您可能已经看到一些WSF文件,其中一个文件中可能包含多种语言,但是通常WSH脚本是用一种语言编写的,并且以与该语言的脚本版本相对应的扩展名分发(例如,VisualBasic脚本的VBS,PythonScript的PYS等) )
我会说AutoIt,它在Windows上提供了非常快速和轻松的开发,并且与它紧密结合。这意味着通常需要用其他语言编写大量代码的任务可以自动在一行中完成。直接编译到exe之类的功能也非常有用。
此问题中指出的其他语言(VbScript,PowerShell,批处理)非常受欢迎并受支持。如果您已经知道一种脚本语言并且对它感到满意,那么无论如何都可以。
如果您打算投资购买一种新语言,我会根据您要尝试的工作为您建议两种语言:
JavaScript(通过WSH) -如果要通过实例化各种自动化对象并调用其对象模型来使用各种自动化对象,请使用JavaScript。您可以为从Exchange服务器到WMI到Office文档的几乎所有内容创建一个自动化对象。Visual Studio提供了调试支持(带有/ x参数)。同样,对JavaScript的投资也将证明对HTML很有用。
Perl-如果可以启动其他程序,操纵它们的输出,执行正则表达式,请使用Perl。尽管目前看来这种语言正在减少,但它仍然是一种非常流行的语言,并且得到了大型社区语言的很好支持。您还应该考虑使用这种语言与其他服务(不一定是Windows)进行通信,例如企业上的JIRA或亚马逊上的EC2。EPIC在eclipse中支持调试,这也是一个不错的IDE环境(语法着色等)。CPAN中有所有模块。当必须在非Windows计算机上进行自动化时,Perl知识将被证明是有用的。