.exe (Exerb 化した .rb) や .bat に処理したいファイルを D&D して、さらに他の .exe や .rb に処理を引き継ぎたいんだけどうまくいかない。
.rb → .bat は shell.Run( "foo.bat #{arg}", 1, true ) みたいな感じにしてもダメだった。
.bat → .rb は hoge.exe %1 とするとカレントフォルダ内で使う分には問題ないんだけど、フォルダをまたぐとうまく動かない。なので hoge.exe """%~f1""" としてみたら、ARGV にそれらしいパスは渡るんだけど、いざ File.open しようとするとダメなんだよな。\ と / の扱いの違いのせいなのかしら。
Ruby リファレンスマニュアルの ARGV と ARGF の項は交互にたらい回しにされていつ見てもストレスがたまる。まぁ ARGV/F に限った話じゃないけど。あと使用例が載ってるのかと思いきや、内部的には以下に示すスクリプトと等価な処理をする命令ですって説明が多くて路頭に迷う。日本語でおk
と、楽するつもりが予想外に時間を喰われてちょっとご機嫌斜めです。
まー私の頭が弱いのが一番の原因なんだよな。
正規表現記号
以下は、ruby がサポートする正規表現記号 (メタ文字) の一覧です。
・ \を伴わない英数字はメタ文字ではない
・ \を伴う記号はメタ文字ではない
正規表現記号 (ruby-lang.org)
ここが何度読んでもわかんない。
Regexp でどの記号をエスケープしなきゃいけないのか忘れてここを見るんだけど、結局どの文字をエスケープしなきゃいけないのかいつもわからない。$ や * や + や ? がメタ文字なのはわかったけど、& や # や : や % はどうなのよとツッコミつつ泣く泣くページを閉じる日々。
\を伴う英数字が全てメタ文字になるわけじゃなさそうだし、\を伴わない記号は全部メタ文字になるわけでもないのなら、この二行はもはや詩だよな。時間が夢を裏切るとかあの領域。
グチが多くてゴメンナサイ。
\を伴う英数字が全てメタ文字になるわけじゃないのは現在の実装の話で、今はメタ文字じゃないものもメタ文字になる可能性があるという意味だと思います。
記号の方は心配なら全部\でエスケープしてしまえば安心という話だと思います。
メタ文字じゃない非メタ文字をエスケープしたら、非メタ文字として扱われなくなるんじゃないかと心配してました・・・。