2009年4月10日金曜日

path_mod.batに変更(PATH環境変数の要素の変更)

先日作ったPATH_SUB.BATには仕様バグがあったので書き直し。
PATHの要素から指定したパターンを探して、新たなディレクトリを追加するのは前と同じ。
ただし、
  • パターンにパッチした要素を置換する
  • マッチした要素は削除してPATHの先頭に追加する
  • マッチした要素は削除してPATHの末尾に追加する
という3種類の操作に対応してみた。
...でも、先頭に追加する機能しか使ってない...。無駄だったか...。
いつか役に立つ日が来るかもしれないよな...。

path_mod.bat
@echo off
set PATH_MOD_BAT=%TEMP%\path_mod_.bat
if "%1"=="replace" (
ruby -e "puts('PATH='+ENV['PATH'].split(';').map{|x|(x=~/%2/i)?'%3':x}.select{|y|y.size>0}.join(';'))" > %PATH_MOD_BAT%
) else if "%1"=="head" (
ruby -e "puts('PATH='+(['%3']+ENV['PATH'].split(';').select{|x|x !~/%2/i}).select{|y|y.size>0}.join(';'))" > %PATH_MOD_BAT%
) else if "%1"=="tail" (
ruby -e "puts('PATH='+(ENV['PATH'].split(';').select{|x|x !~/%2/i}+['%3']).select{|y|y.size>0}.join(';'))" > %PATH_MOD_BAT%
) else (
echo "Bad Usage: path_mod [replace|head|tail] pattern path"
goto cleanup
)
call %PATH_MOD_BAT%
del %PATH_MOD_BAT%
:cleanup
set PATH_MOD_BAT=
r186.bat
@call path_mod head ruby.*\\bin C:\\App\\ruby-186-26\\bin
r187.bat
@call path_mod head ruby.*\\bin C:\\App\\ruby-187-p72\\bin
r191.bat
@call path_mod head ruby.*\\bin C:\\App\\ruby-1.9.1-p0-i386-mswin32\\bin
jdk.bat
@set JAVA_HOME=C:\PROGRA~1\Java\jdk1.6.0_13
@call path_mod head \\jdk.*\\bin C:\\Progra~1\\Java\\jdk1.6.0_13\\bin
flex3
@call jdk
@call path_mod head \\flex.*\\bin C:\\App\\flex_sdk_3.3\\bin
jr114.bat
@call jdk
@call path_mod head jruby.*\\bin C:\\PROGRA~1\\NETBEA~1.1\\ruby2\\jruby-1.1.4\\bin

0 件のコメント:

コメントを投稿