1. ホーム
  2. スクリプト・コラム
  3. DOS/BAT(ドス・バット

phpsh hpcli開発の究極のソリューション(php版切り替えバッチ処理)

2022-01-01 15:32:21

最近、ちょっとしたツール開発のためにvbsスクリプトの代わりにphpを使っています。異なるバージョンのphpの互換性をテストするために、phpのバージョン切り替えバッチ phpsh.cmd を書きました。このバッチは、システムへのインストール、アンインストールなどをサポートし、複数のphpバージョンを任意に切り替えることもサポートしています(最初にphpStudyをインストールする必要があります)。

システムへのインストールが必要な場合は、コマンドプロンプトを管理者として実行する必要があり、基本的な使い方は以下のとおりです。

一度インストールすれば、管理者権限で実行する必要はありません。どのディレクトリからでもphpshを実行することができ、自動的にphpの環境を構築します。

管理者以外の権限でインストールとアンインストールを実行すると、対応するプロンプトが表示されます。システムにインストールせずに実行することも可能です。

インストールされていない場合、phpsh が現在のパスになければ、フルパス名で以下のように実行できます。

コードは比較的簡単で、以下がその全容です。

@echo off
 
::Installation path
set ins=C:\Windows\%~nx0
 
::If the corresponding PHP version exists, go to the main program
if "%1"=="" goto main
if "%1"=="52" goto main
if "%1"=="53" goto main
if "%1"=="53n" goto main
if "%1"=="55" goto main
if "%1"=="55n" goto main
if "%1"=="70n" goto main
goto cmds
 
::main program
:main
set PHP_VER=PHP%1
if "%PHP_VER%" == "PHP" set PHP_VER=PHP55
set path=d:\phpstudy\%PHP_VER%;%path%
title %PHP_VER%_sh
prompt %PHP_VER%_sh^>$p#
goto quit
 
::If it is a non-numeric parameter that is entered, parse
:cmds
if "%1"=="/i" goto install
if "%1"=="/install" goto install
if "%1"=="/u" goto uninstall
if "%1"=="/uninstall" goto uninstall
if "%1"=="/v" goto version
if "%1"=="/version" goto version
goto help
 
::Show help
:help
echo Usage: %~n0 [/h ^| /help ^| /i ^| /install ^| /u ^| /unstall ^| /v ^| /version ^| PHP_VERSION]
echo.
echo no arguments set php version to php5.5
echo /h Show help
echo /help Show help, same as /h
echo /i install to system
echo /install install to system, same as /i
echo /u uninstall
echo /unstall uninstall, same as /u
echo /v View current php version
echo /version View current php version, same as /u
echo 52 set php version to php5.2
echo 53 set php version to php5.3
echo 53n set php version to php5.3n
echo 55 set php version to php5.5
echo 55n set php version to php5.5n
echo 70n set php version to php7.0n
goto quit
 
::view version
:version
php --version
goto quit
 
::install
:install
echo Start installation...
if not exist %ins% copy %~f0 %ins%>nul
if %ERRORLEVEL% == 0 echo Installation successful, open the command prompt and type %~n0 to start
if %ERRORLEVEL% == 1 echo Installation failed, must be run in administrator mode
goto quit
 
::Uninstall failed
:uninstallerror
echo Uninstallation failed, must run in administrator mode
goto quit
 
::Uninstall
:uninstall
copy %~f0 %ins%.bak>nul
if %ERRORLEVEL% == 1 goto uninstallerror
echo uninstall successful
del %ins%.bak>nul
if exist %ins% del %ins%
 
:quit

phpsh hpcli開発(php版スイッチングバッチ処理)の決定版です。