Entry

2004-01-31

2004/01/31 (土)

D&DされたファイルをRubyスクリプトに渡すJScript


// D&DされたファイルをRubyスクリプトに渡すスクリプト

var shell = WScript.CreateObject("WScript.Shell");
var fileArg = WScript.Arguments;

if (fileArg.length == 0) {
WScript.Echo("No input file.");
} else {
for (var i = 0; i < fileArg.length; i++) {
shell.Run('[スクリプトの絶対パス 例:D:\\Develop\\Ruby\\script.rb] ' + fileArg.Item(i))
}
}

いやまぁ、これだけだけなんだけど。でもこれ作るのに2時間以上かかった…。というのもパス指定に”\”じゃなくて”\\”を使うことをすっかり失念してたから。それから、コマンドラインから引数を渡すときは、現在位置がカレントディレクトリなのに対し、ドラッグ&ドロップの際はカレントディレクトリがDocument and Setting 以下になるので、実行するRubyスクリプトファイルの位置を絶対パスで指定しなければならないことを知らなかったから、というのもある。
あまりにうまく行かない物だから、一度はバッチファイルに切り替えてしまおうか、とすら考えた。いや、バッチファイルにしたところで同じような事態に遭っていたと思うけど。あー、もう馬鹿。

20:44

Rubyスクリプトにドラッグ&ドロップ

ちょっとWindows上で簡単なスクリプト処理をしたいと考えていたので、以前から色々といじくってた。
で、HTMLから使えて、EmEditorでも使えて、Windows標準でWSHに使えるJavaScript(JScript)を使ってたけど、これが困ったことに文字コードの扱いがうまく行かない。色々模索してみたけど、どうしてもUTF-8で出力できない。
一番慣れてるJavaでやるかな…とも思ったけど、コンパイルしなくてはならないし、あまり手軽ではないのでやっぱり却下。しょうがないから他の言語を…というわけでRuby。あまり扱い慣れてないけど、CGI作るのに覚えようと思ってたのでちょうどいい。ちなみに、スクリプトファイルの文字コードをUTF-8にすればどうやらUTF-8で出力してくれるようだ。あんまり色んな言語触ったことないから知らないけど、普通そういう物なのかな…。いや、深くは考えまい。出力してくれるのだからそれでよし。
で、ここでまた困ったことが。JScriptの場合は、スクリプトにファイルをドラッグ&ドロップするとそのファイルパスを引数にしてスクリプトを実行することができたけど、RubyはActiveScriptRubyを入れてもドラッグ&ドロップに対応してくれない。これが無いと、複数のファイルを処理するとき非常に困る。
バッチファイルがドラッグ&ドロップに対応してくれているので、バッチファイルで処理するか、もしくはJScriptで処理するか…。

03:44

Comments (0 件)

コメントを残す

メールアドレスが公開されることはありません。