Last-Modified: 2002-02-22(Fri)

by たけ(tk)

たけ(tk)のホームページへ

set_path_for_ruby.rb スクリプト ver.0.04

複数のバージョンの Ruby を、とっかえひっかえ試したい場合、
新規に Ruby を入れたけど、パスが通っていないので使いにくい場合に

set_path_for_ruby.rb のアイコンを目的の ruby.exe にドロップするだけで
その ruby.exe が存在するディレクトリにパスが通るようになります。

既存の Path を調べて、ruby.exe を含むパスが登録されている場合には、
それを削除するかどうかを聞いてきます。
削除しなくても、目的のパスを Path の先頭に移動しますので、通常は問題はありません。

* ver.0.03 でデバッグ用のコードが残っていました。また、若干のバグがあったので修正しました。

ご注意

注意:Windows NT 系(Windows2000、WindowsXP など)専用です。Windows95 系では動作しません。95系の場合には Autoexec.bat を自分で書き換えましょう。

注意:Win32API ライブラリは必要です。それ以外のライブラリは使っていません。最近の Ruby であれば標準装備のはずですが、大昔の Ruby では入っていないかもしれません。その場合は、そのバージョンのライブラリを入れるか、諦めましょう。

注意:レジストリを書き換えます。レジストリ書き換え後にシステムにメッセージを送って環境変数を変更しています。

注意:環境変数を書き換えても《既に起動しているプロセス》や《そのサブプロセス》には反映されません。それらのプロセスに反映させたい場合には、そのプログラムを再起動する必要があります。

注意:慎重に作ったつもりですが、レジストリの書換えを行いますので、ご自分の責任でご使用ください。

実行風景

【最終確認画面】

最終的には次のような確認画面がでます。ここで「はい(Y)」をクリックしない場合にはレジストリ・環境変数は何も変更されません。
【起動】

起動するには set_path_for_ruby.rb を目的の ruby.exe にドロップするのが一番簡単です。フォルダーが別でも、フォルダーを2個並べてドロップすればOK。

あらかじめ ruby.exe のあるフォルダに《コピー型のドロップ》(Ctrl キーを押しながらドロップ)をしておけば便利でしょう。
【変更不要の場合】

パスに問題がなければ次のように出ます。
【既存のパスがない場合】
【既存のパスがある場合】

削除しなくても、パスの先頭に移動しますので、おそらく問題は少ないでしょう。
【トラブル】

トラブルが予感される場合には、実行を中止するようになっています。
トラブルの原因として考えられるのは

(1)Win95 系で実行しようとしたとき。Win95系では環境変数の扱いが異なるので、実行できません。c:\AutoExec.bat を書き換えて環境変数をセットしてください。

(2)Windows のシステムパスの中に ruby.exe が入っていたとき。ディレクトリ名の途中に「Winnt」「Windows」があるときに危険防止のために中止します。できれば、システムパスには入れないようにしましょう。

(3)バッチなどでパスを設定しているとき。WinNT系ではコントロールパネル→システム→詳細→環境変数、でセットする流儀になっています。流儀に従いましょう。

(4)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ruby.exe というレジストリに何か入っているとき。これは RegEdit で手動で消してください。

(5)既に起動していたプロセスのサブプロセスとして実行したとき。環境変数を変更しても《既存のプロセス》や《そのプロセスから新たに起動されたプロセス》には反映されません。そのコマンドを再起動する必要があります。

(6)その他(?)。


【ログ】
ver.0.04 2002-02-22(金):デバッグ用の require "phi" が残っていた。say の引数の *args が 1.7.2 でエラーになったので削除した。
ver.0.03 2002-02-06(水):書込禁止ディレクトリの場合でも落ちないようにした。
ver.0.02 2002-02-02(土):Win95 系で実行した場合にメッセージを出して終了。
ver.0.01 2002-02-01(金):初期バージョン。
author: KUMAGAI Hidetake