[Batch] 使用Windows批次檔(bat)快速修改PHP版本

[Batch] 使用Windows批次檔(bat)快速修改PHP版本

更新於 發佈於 閱讀時間約 3 分鐘
此文章同步刊登於我的部落格


由於開發多個專案的時候,頻繁切換本地環境的PHP版本實在太麻煩,於是想要可以直接使用指令就完成切換的功能,於是有了這篇文章。



一、安裝pathman

按照官方文件安裝pathman

有npm:

npm install -g pathman

無npm:

下載後執行指令:

mkdir %userprofile%\bin
move pathman.exe %userprofile%\bin\pathman.exe
%userprofile%\bin\pathman.exe add ~/bin


二、使用方法

# 列出現有的PATH環境變數
pathman list

# 加入新的PATH環境變數
pathman add path/to/target

# 移除既有的PATH環境變數
pathman remove path/to/target

安裝完成後記得重新開啟command line


三、撰寫批次檔

  1. phpv.bat
    @echo off
    setlocal enabledelayedexpansion

    @REM 列舉本地安裝的所有PHP版本與執行路徑
    set php5.6=C:\php\php5.6.40
    set php7.0=C:\php\php7.0.33
    set php7.1=C:\php\php7.1.33
    set php7.2=C:\php\php7.2.34
    set php7.3=C:\php\php7.3.33
    set php7.4=C:\php\php7.4.26
    set php8.0=C:\php\php8.0.13
    set php8.1=C:\php\php8.1.0

    @REM 取得輸入版本
    set version=php%1

    @REM 檢查版本是否存在
    if (!%version%!)==() (
    echo unknow version: %1
    exit
    )

    @REM 移除現有版本
    pathman remove %php5.6%
    pathman remove %php7.0%
    pathman remove %php7.1%
    pathman remove %php7.2%
    pathman remove %php7.3%
    pathman remove %php7.4%
    pathman remove %php8.0%
    pathman remove %php8.1%

    @REM 設定指定的版本
    pathman add !%version%!

    echo change php version to: !%version%!

四、設定環境變數

將存放該bat檔案的路徑加入環境變數,例如我的bat完整路徑為:

C:\php\phpv.bat

那就將C:\php加入PATH中

除了利用GUI完成外,也可以利用剛剛安裝的pathman工具

pathman add C:\php


設定完成後重新開啟command line,就可以輕鬆使用phpv指令切換PHP版本了,例如:

phpv 8.1

環境

  • Windows 10


avatar-img
Hankz是名工程師
8會員
21內容數
你可以在這裡看到後端工程師的技術文章 也可以看到一些投資相關的心得分享 歡迎交流~
留言
avatar-img
留言分享你的想法!
Hankz是名工程師 的其他內容
在PHP中可以用$this、self、與static代表自己這個類別,有些人可能搞不清楚他們的區別,尤其是self、與static,但是他們各別有自己的意義和用法,在實戰中這些些微的差別可能就會造成不可預期的問題,本文仔細說明了他們之間的差別。
在寫CI的時候是否曾經遇過out of memory的錯誤呢?CodeIgniter作為輕量化的PHP框架,db物件一直是操作資料庫的好幫手,簡化了下達sql指令時的操作,加快了開發的速度,但其實看似好用的工具裡說不定有著隱藏的問題。
Simple Storage Service (S3) 是 AWS 最常應用到的服務,只要是需要將檔案上傳到雲端的狀況都可以使用S3,本篇文章將介紹如何設定與使用AWS S3。
在PHP中可以用$this、self、與static代表自己這個類別,有些人可能搞不清楚他們的區別,尤其是self、與static,但是他們各別有自己的意義和用法,在實戰中這些些微的差別可能就會造成不可預期的問題,本文仔細說明了他們之間的差別。
在寫CI的時候是否曾經遇過out of memory的錯誤呢?CodeIgniter作為輕量化的PHP框架,db物件一直是操作資料庫的好幫手,簡化了下達sql指令時的操作,加快了開發的速度,但其實看似好用的工具裡說不定有著隱藏的問題。
Simple Storage Service (S3) 是 AWS 最常應用到的服務,只要是需要將檔案上傳到雲端的狀況都可以使用S3,本篇文章將介紹如何設定與使用AWS S3。