哪些脚本语言在 Windows 中有用?

49 windows script

哪些脚本语言对 Windows 自动化有用?

Nic*_*ski 36

Windows 有 3 个需要考虑的内置解决方案:

  1. 电源外壳
  2. Windows脚本宿主
    一个。VBScript
    B. 脚本
  3. 批处理文件

PowerShell (v2.0)

从 Windows 7 和 Server 2008 开始,考虑 PowerShell 是合理的,因为它随 Windows 一起提供,并且也是管理服务器软件(如 Lync 和 Exchange)的基础。可用的功能列表越来越多;有关详细信息,请参阅脚本中心

Windows 脚本宿主

Windows Script Host (WSH) 从技术上讲是 ActiveX 脚本引擎的脚本主机。VBScript 和 JScript(Microsoft 的 JavaScript 实现)是默认安装的两个引擎。开源社区提供了许多其他工具,包括 Perl、PHP 和 Ruby。

脚本

使用与 VB6 和 VB.NET 类似的语法,VBScripts 无法轻松访问 .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
Run Code Online (Sandbox Code Playgroud)

脚本

可以使用 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");
}
Run Code Online (Sandbox Code Playgroud)

命令批处理文件

当然还有好的 ol' 批处理文件。他们不需要介绍。

  • 至于 Windows 7 和 Server 2008,那就是 Powershell 2.0 (7认同)

Ran*_*son 16

我仍然编写 DOS 批处理文件,即使在 Windows 7 中。对于大多数任务,这仍然可以很好地工作,并且使用起来非常简单(而且,随着时间的推移,许多诸如“FOR”之类的 DOS 命令都得到了改进,并提供了更多十多年前不可用的选项和功能)。

对我来说,DOS 批处理文件仍然是 Windows 的主要脚本语言(它当然是传统的),但每个人都有不同的需求和偏好。有很多 DOS 批处理文件不能做的事情(脚本语言也可能造成限制),对于我遇到的极少数情况,我会看看我的其他选项是什么(通常是 Perl,有时它可以是编写一个小程序或整个应用程序)。

了解您需要完成什么是决定使用哪些工具的非常重要的一步。熟悉工具是另一个可以限制您选择的重要方面。如果您正在尝试决定要学习哪种脚本 [或编程] 语言,那么希望这对您有所帮助。

  • 如果“主要”脚本语言的意思是“最古老和最广泛使用的”,这绝对是正确的答案。然而,`cmd` 确实是一个怪物,很容易成为我曾经不幸使用过的最糟糕的 shell 脚本语言。 (10认同)
  • +1 我知道 MS 希望 powershell 成为 *it*,但现在如果你想向某人发送一个运行“windows”的脚本,你必须向他们发送一个 DOS 批处理文件。PS对于某些任务的某些版本的Windows非常有用,并且它们具有很大的功能,但批处理文件是通用的。 (5认同)
  • 当脚本需要在其他版本的 Windows 上使用时,我也使用批处理文件。如果您只处理 Win7/Server 2008,那么 PowerShell 是不二之选。 (3认同)

MaQ*_*eod 10

这取决于你问谁。有些人永远不会离开批处理,有些人喜欢 vbscript 有些人喜欢 powershell,其他人喜欢 AutoIt。然后是平台独立的,比如 Python 和 Perl,有些人会为一切发誓。

  • +1 提到跨平台脚本语言(Perl 是我的最爱,而且我知道 Python 多年来也越来越受欢迎)。 (2认同)
  • +1 为 Perl。它在许多平台上都很有用,并且有一些特定于 Windows 的模块。 (2认同)