便携式脚本语言为多服务器pipe理员?

请注意:便携式,就像portableapps.com一样,不是传统意义上的可用于多种体系结构或操作系统的语言。 无论是谁造就了便携式这个词的用法都应该被打破。 🙂

我是DBA和系统pipe理员,主要是运行SQL Server的Windows机器。 我正在寻找一种不需要pipe理员权限或安装程序的Windows编程/脚本语言,除了将其展开到一个文件夹之外,不需要任何安装过程。 我的意图是有一个自动化的语言,我可以标准化。

到目前为止,我一直在使用batch file和Unix shell的组合,使用UnxUtils中的 sh.exe,但它远非完美的解决scheme。

我已经评估了一些选项,他们都至less有一个严重的缺点或另一个。 我非常喜欢开源或双许可证,但我更感兴趣的是find合适的工具。 对那些依赖于Cygwin或者Java的东西没有兴趣,但是在这一点上,我会很满意一些需要.NET的东西。

要求:

  • 可pipe理的足迹(1-100个文件,安装30 MB以下)
  • 在Windows XP和Server(2003+)上运行
  • 没有安装程序(exe,msi)
  • 不依赖于JVM或Cygwin安装
  • 与外部pipe道,进程和文件一起工作
  • 支持MS SQL Server或ODBC连接

奖励积分:

  • 开源
  • FFI调用原生DLL中的函数
  • GUI支持(native或gtk,wx,fltk等)
  • Linux,AIX和/或OS X支持
  • dynamic,面向对象和/或function,解释或字节码编译; 互动发展
  • 能够将脚本打包或编译成可执行文件

到目前为止我已经尝试过:

  • Ruby:磁盘上有148MB,23000个文件
  • 可移植的Python:磁盘54 MB,2800个文件
  • 草莓Perl:磁盘上123 MB,3600个文件
  • REBOL:非常好,除了封闭的源代码,没有免费版本的MSSQL或ODBC
  • Squeak Smalltalk:很好,除了对脚本的不好的支持

Tclkit是一个单独的,独立的Tcl / Tk系统。 我有的mac版本是大约3.8 megs。 你可以得到一个几乎任何现代操作系统的版本。 我随身携带一个带有mac,windows和linux二进制文件的拇指驱动器,这样我就可以在任何平台上运行我的脚本。 无需安装,只需复制一个文件,无论你想要的。

从原始规格中缺少的唯一东西是开箱即用的MS SQL server / ODBC支持。 我知道人们使用TCL,但我认为你将不得不添加一个额外的库或东西。 有关更多信息,请参阅MS SQL server上的Tcl'ers wiki条目 。

我敦促你试试Lua 。 关于你的要求:

  • 微小的足迹(56个源文件,编译在150K以下)
  • 运行到处(只使用ANSI C)
  • 没有安装程序需要; 你从源代码编译(还有一个“电池包”包 ,我还没有探索
  • 不需要JVM,可以和任何ANSI C编译器一起工作,所以你可以用Visual Studio编译,而不是Cygwin
  • 与外部进程和文件一起工作,但只能在ANSI C支持的范围内。如果提供了POSIX popen ,那么也支持。

而你的奖励点:

  • 开源(MIT许可证)
  • FFI到C是精心构思和执行 – 不像Tcl那么简单,但加载更强大。 与Python或Ruby的集成比C更好。
  • GUI支持是混合的,但是对于wx小部件有很好的绑定。 QT支持曾经在那里,但是我不知道是否一直保持。
  • 支持Linux
  • 语言/编译器功能:
    • 动态
    • 实用
    • 基于原型的对象和metamethods的继承(你会希望看到下面的书中的例子
    • 西方最快的字节码编译器
    • 交互式读取评估打印循环; 动态加载新代码
  • 能够将脚本打包成可执行文件; 或者使用Luiz de Figueiredo的srlua ,或者我可以给你发送一个120行的Lua脚本,将Lua源代码转换成一个.c文件,你可以用你的应用程序和解释器链接到一个可执行文件。

额外奖励积分:

  • 非常清脆,干净,设计良好的语言。
  • 小到足以掌握全部内容,并在一天内生产。
  • 精湛的书籍在Lua编程 ( 免费在线检查以前的版本 )

有几个Python选项可能适合您的账单:

  • 第一个是IronPython,它可以在没有安装程序的情况下运行,并且可以很好地与.net API配合使用。 这使您可以使用.net API或可以构建PIA的COM typelib来访问任何内容。 我已经在使用作为脚本机制正是这个原因 – 它可以被放置到系统中的一个目录,并不需要明确安装..

    您必须安装适当的.Net运行时,但.Net 2.0随SQL server 2005一起安装。可以通过ADO.net访问SQL server,并且使用Winforms构建GUI非常简单。

  • 第二个是便携式Python ,它被设计成运行在USB密钥上。 虽然我看到你已经尝试过了,但你可以详细说明缺点是什么。 如果在基本安装中没有可用的东西,您可以随时查看包含的自定义版本。 TkInter(至少)是捆绑在一起的。

    您还可以使用Py2EXE生成独立的Python应用程序,并删除所有多余的垃圾。 这会给你10个左右的文件(取决于DLL的数量),可以从一个目录运行,可能在一个USB密钥上运行。

在Unix-oid操作系统上运行本地python安装非常简单,所以这是非常简单的。 另外,python附带了大部分的linux发行版,并且可以作为来自大多数(如果不是所有的)unix供应商的“贡献软件”提供。 IIRC也与MacOS捆绑在一起。

对于tcl来说,除了Tclkit之外, freewrap是另一个小巧的,便携的,独立的tcl解释器。

只需将freewrap可执行文件重命名为其他内容即可将其转换为独立的解释器。 将它重命名为freewrap会将其转换为脚本包装器。

此外,freewrapped应用程序包含一个tcl解释器。 在紧急情况下,您可以尝试以zip文件的形式打开应用程序,并编辑/替换包含在其中的tcl代码(只要记得首先制作一个副本)。 当我在没有开发工具的客户端网站上时,这已经节省了好几次,但是需要排除一些问题。 我只是制作一个我部署的应用程序和即时开发环境的副本!

看看维基百科的可移植软件的详尽清单有这里的维基百科的Tiny C编译器和它自己的主页。

总结来自维基百科的功能列表:

  • 小 – 可以在任何地方编译和执行C代码,例如在救援磁盘(对于x86 TCC可执行文件,包括C预处理器,C编译器,汇编器和链接器,大约100KB)。
  • Fast – tcc生成优化的x86代码。 无字节码开销。 它编译,汇编和链接比GCC快9倍。
  • 任何C动态库都可以直接使用。 TCC正在走向完全符合ISOC99标准。 TCC当然可以自行编译。
  • 包括一个可选的内存和绑定检查器。 绑定的检查代码可以与标准代码自由混合。
  • 直接编译并执行C源代码。 不需要链接或组装。 包括完整的C预处理器和GNU-like汇编器。
  • 支持C脚本:只需在C源代码的第一行添加“#!/ usr / local / bin / tcc -run”,然后直接从命令行执行即可。
  • 使用libtcc,您可以使用TCC作为动态代码生成的后端。
  • 很少依赖。 它包含自己的手写词法分析器,并使用递归下降分析器来实现。 因此,建立TCC需要很少的其他图书馆。
  • 其LGPL许可证允许任何人使用,修改和/或重新分配软件,它可以用来开发开源或专有软件。

希望这有助于和将是有用的,最好的问候,汤姆。

除了Lua的建议,还有空闲 。 它基本上是Lua 5.1的一个超集,包括语言(和库)和基于Lua的实现。 它最初被创建为一个更完整的Windows脚本解决方案:因为Lua主要用于嵌入,它有一个相当小的标准库,通常预计嵌入应用程序会为Lua提供一个丰富的库。

这对于嵌入式语言来说是有意义的,因为毕竟Adobe Lightroom,Nginx和魔兽世界之间没有太多共同的功能,所以在标准库中没有任何东西。 但是对于一个更通用的操作系统脚本语言,人们会想要一个稍大的库。 因此,Idle在其标准库中捆绑了一些第三方的库(有时候很难在Windows上工作)。

Idle标准库添加了Lua的一些功能是紧密的Win32集成,SQLite3支持,网络支持,PEG解析器生成器和归档支持。

另外,Idle支持将Perl和C代码嵌入到空闲程序中。

每个有些现代的Windows版本都预先安装了VBScript和JScript。 不符合你的所有功能(编译成可执行文件),但它们在安装尺寸上肯定有无与伦比的优势:很难击败0