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固有のものを駆動します(単なる推測)。
あなたは何を使うのですか?
TIA
私はあなたが矛盾のエッジでジャグリングしていると思います:プラットフォームに依存しない(賞賛に値する)だけでなく、「OSの詳細に近い」も欲しいと思います。
ただし、プラットフォームの独立性にもう少し重点を置いている場合は、汎用スクリプトにgroovy(RubyよりもJavaに適したもの)を使用するという考えを抱いています。必要な場合は、OSシェルコマンドを呼び出してOS固有の動作を取得します。
私の動機は少し異なります。私が開発しているプロジェクトには、優れたマルチプラットフォームスクリプトツールが必要ですが、グルーヴィーなコードはbashよりも堅牢であると思います。
私は Lua の大ファンです。
構文は漠然とPascalに似ており、スクリプトでうまく機能します。
優れたパワーウェイトレシオ。優れたエンジニアリング。とても良いデザイン。
ANSI Cコンパイラを備えたあらゆるプラットフォームに非常に移植可能です。
WxLuaおよびその他のバインディングによるGUIサポート
Lua File Systemアドオンなど、一般的なタスクでOSの違いを隠すためのいくつかのサポート
コアシステムとライブラリは、使用しているもののallを理解できるほど単純ですが、bash/batと比較して優れたレバレッジを持っています。表現力はPythonまたはRubyに匹敵します。
プラスまたはマイナスのライブラリやフレームワークに圧倒されることはありません。
excellentの本があります:Roberto Ierusalimschy's Programming in Lua ; 前のエディションはオンラインで無料 を入手できます。
パフォーマンスはtcl、Perl、python、Rubyに勝る
X86ハードウェアでさらに高速なパフォーマンスを実現するLuaJITがあります。
最後に、これが穴のエースです。プラットフォーム固有の問題に遭遇した場合、プラットフォーム固有のCコードを記述してLuaスクリプトに動的にロードするのはeasyです。 Luaはこのタスクを念頭に置いて設計されており、非常にうまく機能します。パフォーマンスのためにCに簡単に浸ることもできます(MD5チェックサムの計算など)。
過去3〜5年間、私はスクリプトをbash/ksh/awk/sed/grep/PerlからLuaに徐々に移行してきました。私はvery結果に満足しています。
PerlとPythonはどちらもほとんどすべてのプラットフォームで使用できます
あなたは試すことができます Batsh
Batshは、BashおよびWindows Batchにコンパイルされる単純なプログラミング言語です。追加の依存関係なしに、すべてのプラットフォームで一度スクリプトを実行できるようになります。
スクリプトは Tcl で記述できます。
構文は単純で、スクリプトに期待するものに近いです。
それはクロスプラットフォームであり、すべての主要なプラットフォームで実行されます。
tkでスクリプト用のシンプルなGUIを簡単に作成できます。これはどこでも機能し、ネイティブコントロールを使用します。
windows固有の関数の場合は、 Twapi (Win32 APIバインディング)を使用できます。
tclディストリビューション全体である単一ファイルであるTclkitをインストールできます。長いインストールプロセスや隠しファイル、神秘的なディレクトリはありません。
たとえばRuby Windows固有のものを駆動する
それは確かに可能です そして Ruby on Windows のブログでは多くの例を見つけることができますまた、Pickaxeの本の章と humble の章もあります。
MonoでC#を使用します。
シェルには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
お役に立てれば幸いです。
それでも必要かどうかはわかりませんが、必要な場合はant( http://ant.Apache.org/ )を試してください。クロスプラットフォームの「スクリプト言語」です。基本的に、antファイルは、JVMプログラムによって解釈されるxmlファイルです。