53

Windows、Linux、MacOS X 用のクロスプラットフォーム スクリプティング (言語) を探しています。.bat / bash にうんざりしています。

たとえば、自動ログイン時に「ワークステーションをロックする」などのことをしたいと思います (X-Window でこれを使用しましたが、解決策はかなり醜いものでした。今では、MS Windows でそれを望み、それほど醜くはありません :-) ) .
一般的に: タスクを自動化します。

それとも、Windows Scripting Host を使用したほうがよいのでしょうか?
PowerShell も頭に浮かびますが、それは私の好みでは Windows のみのようです。Python、Ruby、(Java?) などの言語は、WSH と (エレガントに? 思慮深く?) 対話できますか?

また、DBUS、DCOM などもイメージの一部として思い浮かびます。

現在、Java、.bat、bash、Ruby、Scala を組み合わせて使用​​しています。Excel用のVBA。これは時々かなり醜くなります。

OS固有の部分に近い、ネイティブの部分を使用した/使用した、クロスプラットフォームの一般的なソリューションが欲しいです。たとえば、Ruby が Windows 固有のものを駆動しているように (推測にすぎません)。
あなたは何を使うのですか?
ティア

4

9 に答える 9

26

私はLuaの大ファンです:

  • 構文は漠然と Pascal に似ており、スクリプトでうまく機能します。

  • 優れたパワーウェイトレシオ。優れたエンジニアリング。とても良いデザインです。

  • ANSI C コンパイラを使用して、あらゆるプラットフォームへの移植性が非常に高くなります。

  • wxLua およびその他のバインディングによる GUI サポート

  • Lua File Systemアドオンなど、一般的なタスクでOSの違いを隠すためのサポート

  • コア システムとライブラリは、使用しているものをすべて理解できるほどシンプルですが、bash/bat と比較して優れた活用力があります。表現力は Python や Ruby に匹敵します。

  • プラスにもマイナスにもなり得るライブラリやフレームワークに圧倒されることはありません。

  • 優れた本があります: Roberto Ierusalimschy's Programming in Lua ; 前のエディションはオンラインで無料で入手できます。

  • tcl、perl、python、ruby に勝るパフォーマンス

  • x86 ハードウェアでさらに高速なパフォーマンスを得るには、LuaJIT があります。

  • 最後に、これが切り札です。プラットフォーム固有の問題が発生した場合、プラットフォーム固有の C コードを記述して Lua スクリプトに動的にロードするのは簡単です。Lua はこのタスクを念頭に置いて設計されており、非常にうまく機能します。また、パフォーマンスのために C を簡単に使用することもできます (たとえば、MD5 チェックサムの計算)。

過去 3 ~ 5 年間、スクリプトを bash/ksh/awk/sed/grep/perl から Lua に徐々に移行してきました。私は結果にとても満足しています。

于 2010-04-15T04:26:13.617 に答える
12

あなたはBatshを試すことができます

Batsh は、Bash および Windows Batch にコンパイルされる単純なプログラミング言語です。これにより、依存関係を追加することなく、すべてのプラットフォームで一度実行されるスクリプトを作成できます。

于 2015-02-18T07:36:33.323 に答える
10

PerlとPythonはどちらも、ほぼすべてのプラットフォームで利用できます

于 2010-04-14T13:29:35.600 に答える
7

矛盾の端でジャグリングしていると思います。プラットフォームに依存しない(称賛に値する)だけでなく、「OS固有に近い」ことも望んでいます。

ただし、プラットフォームの非依存性をもう少し重視するなら、汎用スクリプト作成に groovy (より Java に適した ruby​​ の親戚) を使用するというアイデアを楽しんでいます。必要に応じて、OS シェル コマンドを呼び出すことで、OS 固有の動作を取得できます。

私の動機は少し異なります。Groovy コードは bash よりも堅牢であることがわかりますが、開発中のプロジェクトには優れたマルチプラットフォーム スクリプト ツールも必要になります。

于 2010-04-14T12:21:25.397 に答える
5

スクリプトをTclで書くことができます。

  • 構文は単純で、スクリプトに期待するものに近いです。

  • クロスプラットフォームであり、すべての主要なプラットフォームで動作します。

  • Tk でスクリプト用のシンプルな GUI を簡単に作成できます。これはどこでも機能し、ネイティブ コントロールを使用します。

  • Windows 固有の機能については、Twapi (Win32 API バインディング) を使用できます。

  • Tcl ディストリビューション全体である単一のファイルである Tclkit をインストールできます。長いインストール プロセスや隠しファイル、謎のディレクトリはありません。

    • Linux、Windows、Mac のランタイムを単一のフラッシュ ドライブに簡単に配置できるため、ローカルにインタープリターがインストールされていなくても、いつでもインタープリターを利用できます。
于 2010-04-14T12:48:46.517 に答える
2

たとえば、RubyがWindows固有のものを駆動するように

それは確かに可能であり、Ruby on Windowsブログでは多くの例を見つけることができます。また、Pickaxe の本と控えめな本の中に章があります。

于 2010-04-14T12:38:57.110 に答える
0

まだ必要かどうかはわかりませんが、必要な場合は ant ( http://ant.apache.org/ ) を試してください。クロスプラットフォームの「スクリプト言語」です。基本的に、ant ファイルは、JVM プログラムによって解釈される xml ファイルです。

于 2014-10-18T15:43:04.237 に答える
0

シェルにはUNIXおよびUNIXのようなプラットフォームの可能性がありますが、Windowsのために、これがどのスクリプト言語でも可能であるとは思いません。

UNIX システムの場合、これを使用できます。

#!/bin/sh

TYPE=`uname`;
echo 'this is ' ${TYPE};

if [ ${TYPE} = HP-UX ]
   then bdf /var;
elif [ ${TYPE} = Linux ]
   then df -h /var;
elif [ ${TYPE} = FreeBSD ]
   then df -k /var;
else echo "Unsupported OS - ${TYPE}"
fi

それがあなたを助けることを願っています!

ソース

于 2014-08-25T10:40:16.243 に答える
0

Mono で C# を使用します。

于 2010-04-14T12:19:53.647 に答える