【发布时间】:2021-05-18 14:15:00
【问题描述】:
我需要在同一台电脑上使用多个 PHP 版本,想通过以下策略解决这个问题:
- 我创建了一个类似
D:\bin的文件夹并将其添加到PATH。 - 我为每个版本(如
php56、php70、php80等)创建一个 bash 文件并将这些文件放入我的bin目录中。 - bash 文件应包含一些代码以将命令和参数“转发”到相应的
php.exe,以便在同一窗口中执行它,从而起到一种“代理”的作用。
结果应该是这样的:
$ where php56
D:\bin\php56
$ php56 -v
PHP 5.6.40 (cli) (built: Jan 9 2019 15:10:55)
Copyright (c) 1997-2016 The PHP Group
当代理文件只包含"C:\Program Files\PHP56NTS\php.exe" -v 时,它可以工作。但它不适用于传递参数。
如何让它工作?
【问题讨论】:
-
bash是一个 Linux shell 解释器,默认情况下在 Windows 上不可用。 Windows 命令处理器cmd.exe默认处理文件扩展名为.bat或.cmd的批处理文件。请打开command prompt,运行cmd /?,并仔细完整地阅读输出帮助。接下来运行call /?并再次阅读整个输出帮助。您需要一个像D:\bin\php56.cmd这样的批处理文件,其中包含@"C:\Program Files\PHP56NTS\php.exe" %*行,以便将传递给批处理文件的所有参数传递给 PHP 可执行文件。
标签: windows bash cmd windows-10