![Windows 中哪些脚本语言有用?](https://linux22.com/image/1277237/Windows%20%E4%B8%AD%E5%93%AA%E4%BA%9B%E8%84%9A%E6%9C%AC%E8%AF%AD%E8%A8%80%E6%9C%89%E7%94%A8%EF%BC%9F.png)
哪些脚本语言对 Windows 自动化有用?
答案1
Windows 有 3 个内置解决方案可供考虑:
- 电源外壳
- Windows 脚本宿主
a. VBScript
b. JScript - 批处理文件
PowerShell(v2.0)
从 Windows 7 和 Server 2008 开始,考虑使用 PowerShell 是合理的,因为它随 Windows 一起提供,并且也是管理 Lync 和 Exchange 等服务器软件的基础。可用的功能列表越来越多;请参阅脚本中心了解详情。
Windows 脚本宿主
从技术上讲,Windows Script Host (WSH) 是 ActiveX 脚本引擎的脚本宿主。VBScript 和 JScript(Microsoft 的 JavaScript 实现)是默认安装的两个引擎。开源社区还提供许多其他引擎,包括 Perl、PHP 和 Ruby。
VB脚本
由于使用与 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
JScript
可以使用 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");
}
命令批处理文件
当然还有好用的批处理文件。它们不需要介绍。
答案2
即使在 Windows 7 中,我仍然会编写 DOS 批处理文件。对于大多数任务来说,这仍然运行良好,并且使用起来非常简单(此外,许多 DOS 命令(例如“FOR”)随着时间的推移得到了改进,并提供了十多年前所没有的更多选项和功能)。
对我来说,DOS 批处理文件仍然是 Windows 的主要脚本语言(它当然是传统的),但每个人的需求和偏好都不同。DOS 批处理文件无法完成许多事情(脚本语言也存在局限性),在极少数情况下,我会考虑其他选择(通常是 Perl,有时可能是编写一个小程序或整个应用程序)。
了解您需要完成的任务是决定使用哪些工具的一个非常重要的步骤。对工具的熟悉程度是另一个可能限制您选择的重要方面。如果您正在决定学习哪种脚本 [或编程] 语言,那么希望本文对您有所帮助。
答案3
这取决于你问谁。有些人永远不会放弃批处理,有些人喜欢 vbscript,有些人喜欢 powershell,其他人喜欢 AutoIt。然后是 Python 和 Perl 等独立于平台的语言,有些人会对所有语言深信不疑。
答案4
我想说的是 AutoIt,它提供了非常快速和简单的 Windows 开发,并且与 Windows 紧密结合。这意味着在其他语言中通常需要大量代码的任务在 autoit 中只需一行即可完成。直接编译为 exe 等功能也非常有用。