2014/10/08(水) [n年前の日記]
#2 [perl][windows] ActivePerl や Strawberry Perl を切り替えるbatファイルを書いた
_昨日
、ActivePerl の異なるバージョンを切り替えるbatファイルを書いたけど、もうちょっと頑張れば Strawberry Perl とも切り替えられるかなと思えてきたので試したり。
以下のような場所に、それぞれインストール。
環境変数 PATH に、以下を追加しておく。既に Perlインストールフォルダがいくつか登録されていたら、それらは消しておく。
batファイルは以下の通り。
plch.bat
管理者権限でDOS窓を開いて、plch 58 とか plch 516 とか plch 518 とか、あるいは plch とか打てば、C:\Perl というシンボリックリンクが作られる。perl -v と打ってみて、バージョンが変わってることを確認。
注意事項。事前に C:\Perl というフォルダがあって、中にPerl一式が実体として入ってたら、rmdir C:\Perl で全消去されそうな予感。C:\Perl というシンボリックリンク名じゃなくて、違うリンク名にしておいたほうがまだ安心、かもしれない。
以下のような場所に、それぞれインストール。
- ActivePerl 5.8.x ... C:\Perls\activeperl58\perl
- ActivePerl 5.16.x ... C:\Perls\activeperl516\perl
- Strawberry Perl 5.18.x ... C:\Perls\strawberry518
- C:\Perls\activeperl58\c\bin
- C:\Perls\activeperl516\c\bin
環境変数 PATH に、以下を追加しておく。既に Perlインストールフォルダがいくつか登録されていたら、それらは消しておく。
C:\Perl\c\bin C:\Perl\perl\site\bin C:\Perl\perl\bin
batファイルは以下の通り。
plch.bat
@echo off set PERLPATH1=C:\Perls\activeperl58 set PERLPATH2=C:\Perls\activeperl516 set PERLPATH3=C:\Perls\strawberry518 set PPATH= if "%1"=="58" set PPATH=%PERLPATH1% if "%1"=="516" set PPATH=%PERLPATH2% if "%1"=="518" set PPATH=%PERLPATH3% if not "%PPATH%"=="" goto SETPERLDIR echo Perlのパスを切り替えます。(mklink /d を使ってシンボリックを張り直し) echo. echo 1 : ActivePerl 5.8 echo 2 : ActivePerl 5.16 echo 3 : Strawberry Perl 5.18 echo. set USERINPUTSTR= set /P USERINPUTSTR="切り替えたい番号を選んでください : " if "%USERINPUTSTR%"=="1" set PPATH=%PERLPATH1% if "%USERINPUTSTR%"=="2" set PPATH=%PERLPATH2% if "%USERINPUTSTR%"=="3" set PPATH=%PERLPATH3% if not "%PPATH%"=="" goto SETPERLDIR echo. echo Usage: echo plch 58 echo plch 516 echo plch 518 goto END :SETPERLDIR @echo on rmdir C:\Perl mklink /d C:\Perl %PPATH% @echo off echo. echo Perlのパスを %PPATH% に設定しました echo. :END
管理者権限でDOS窓を開いて、plch 58 とか plch 516 とか plch 518 とか、あるいは plch とか打てば、C:\Perl というシンボリックリンクが作られる。perl -v と打ってみて、バージョンが変わってることを確認。
注意事項。事前に C:\Perl というフォルダがあって、中にPerl一式が実体として入ってたら、rmdir C:\Perl で全消去されそうな予感。C:\Perl というシンボリックリンク名じゃなくて、違うリンク名にしておいたほうがまだ安心、かもしれない。
◎ この手の専用のツールって作れないかな。 :
環境変数PATHの中身を置換できるツールがあれば済むのだろうけど…。誰か作ってないのかな…。もっとも、セキュリティ面でアレな気はするけれど。
ググってみたら、環境変数を置換する方法はあるらしい。 _炎のコマンドプロンプト入門/バッチファイル/環境変数 で解説されてた。
ググってみたら、環境変数を置換する方法はあるらしい。 _炎のコマンドプロンプト入門/バッチファイル/環境変数 で解説されてた。
%[環境変数]:[置換元文字列]=[置換先文字列]%
set NEWPATH=%PATH:C:\Perl=C:\Perls\Perl516% echo %NEWPATH%なんだかbatファイルでもどうにかできそうな気がする。それをシステム全体に再設定できるかは、また別の話だろうけど。
[ ツッコむ ]
以上です。