【问题标题】:A scripting language for Windows? [duplicate]Windows 的脚本语言? [复制]
【发布时间】:2010-04-18 17:45:38
【问题描述】:

可能的重复:
Best “official” scripting language for Windows programmers
Universal scripting language for Windows
What tools and languages are available for windows shell scripting?

我在 Windows 中工作,经常发现需要编写一些用于操作文件或基本字符串操作的脚本。目前,我正在使用 PHP 执行此操作,但为此使用 LAMP 堆栈似乎有点过头了。我尝试过 autoHotkey 之类的东西,但语法和功能都很糟糕。

所以我正在寻找一个脚本: a) 合理的语法 b) 大量的内置库、函数等 c) 最小设置。最好,我想从我选择的应用程序启动器执行器中编写和运行脚本

【问题讨论】:

标签: windows scripting


【解决方案1】:

Windows PowerShell™ 是一种基于任务的命令行 shell 和脚本语言,专为系统管理而设计。 Windows PowerShell™ 基于 .NET Framework 构建,可帮助 IT 专业人员和高级用户控制和自动化管理 Windows 操作系统和在 Windows 上运行的应用程序。

Microsoft Windows Script Host(最初称为 Windows Scripting Host,但在第二个版本中重命名)是一种用于 Microsoft Windows 操作系统的自动化技术,它提供与批处理文件相当的脚本功能,但支持的功能范围更广。

【讨论】:

  • +1。 powershell 为您提供由 .NET 的所有库支持的脚本功能,以及更多
【解决方案2】:

Mafutrct 提供了非常好的响应;如果您正在启动 Windows 脚本,那么您绝对应该从 PowerShell 开始。内置命令、PowerShell 扩展和使用 .NET 运行时的能力确保满足您的所有脚本要求。我只希望 PowerShell 中有更好的脚本语言。如果只是 Javascript :(。

我想指出,WSH 仍然是 Windows 的可行脚本环境。我继续使用它的原因是:

  • Javascript 兼具功能性和原型性,允许简单轻松地编写复杂的脚本
  • 加入WMI,几乎所有与窗口相关的事情都可以很容易地完成。这对于网络和系统管理任务非常有用
  • WSH 脚本可以在窗口和控制台上同样方便地运行(即通过 wscript 和 cscript 调用)
  • 编写脚本就像打开记事本一样简单,输入脚本,将其保存为 js(或 .vbs、.wsh)文件并双击保存的文件
  • 虽然它不再是严格意义上的脚本,但可以使用 .NET 的 Javascript 编译器:jsc.exe 为 CLR 编译 .js 文件。与 PowerShell 一样,它提供了对整个 .NET 框架的访问权限

我在过去几周编写的一些脚本是:

  • 从 MS SQL 服务器中提取数据,创建 Excel 表格并将数据推送到其中,然后将其邮寄给客户端
  • 格式化、解析和过滤数千行 VOIP 交换机日志文件和矢量脚本
  • 使用 Ajax 从远程服务器提取数据,调用 Web 服务并将数据传递给它
  • 当我的同事使用我的笔记本电脑时,我会通过扬声器通过使用 Microsoft 语音 API 的脚本与他们远程“对话”,从而吓坏了他们。这是示例代码:

    var sapi = new ActiveXObject("SAPI.SpVoice");
    sapi.speak("hello world");
    

【讨论】:

  • +1。我曾经在 Windows 上使用 WSH 和 Javascript 完成了函数式编程课程的所有作业。在 emacs 中编辑!
  • 课程可以在线上吗?
  • 这是加州大学伯克利分校的 CS-61A 课程。 youtube.com/watch?v=zmYqShvVDh4 视频说是 2008 年春天的,但他使用的计算机让它看起来像 1988 年春天。有时,讲师还会声称“你不能[用 C# 或其他现代语言进行函数式编程” ”。完全错误,因为 C# 和 JavaScript 都具有良好的功能特性,但我会原谅他,因为他被困在 1988 年并且这些语言还没有被发明出来。我使用 WSH + JavaScript 完成了所有作业。
【解决方案3】:

您可以在没有完整 LAMP 堆栈的情况下使用 PHP。如果您在 Windows 上运行,您当然不想要“L”!

我自己会选择Strawberry Perl。虽然它没有大量的内置库,但它确实有 the CPAN

【讨论】:

    【解决方案4】:

    我是Python的粉丝。

    【讨论】:

    • 当您尝试使用代码页 65001 将 Unicode UTF-8 输出到控制台时,Python 崩溃)-:
    【解决方案5】:

    Perl,“真正的”win32 端口(ActiveState 或 Strawberry Perl)或 Cygwin 变体。

    【讨论】:

    • “合理的语法”是要求的一部分;)
    【解决方案6】:

    如果 (a) 您有 LAMP 领域的经验,并且 (b) 您主要需要文件和字符串操作,我推荐 LuaLua File System。这是与设计空间截然相反的选择:

    • 积极跨平台。 Lua 本身(但不是 LFS)扩展到手持设备、Palm Pilots 等。

    • 非常简单、干净的设计。令人难以置信的高功率重量比。

    如果您要解决的问题不是特定于 Windows 的问题,并且如果您有可能在其他平台上需要类似的解决方案,Lua 会很好。

    Lua 也非常容易学习(没有什么是可怕的),可以使用任何 C 编译器进行编译,由 great book 提供支持,并且具有一站式原生 Windows 实现。

    【讨论】:

      【解决方案7】:

      Rebol 不错。可执行文件有几百 KB,不需要安装,可以做 GUI 和控制台的东西。它可以访问文件、URL、执行程序,随叫随到。语法确实是最小的; Rebol 有一些最整洁的oneliners.. :)

      【讨论】:

        【解决方案8】:

        试试Python。它的跨平台,语法清晰,易于安装,许多“包含电池”的模块(如果没有存储库Pypi,相当于 Perl 的 CPAN)。

        【讨论】:

          猜你喜欢
          • 2011-05-17
          • 1970-01-01
          • 2011-11-28
          • 2011-08-12
          • 2011-03-29
          • 1970-01-01
          • 2012-04-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多