Windows 如何在Windwos 10中使用代理可执行文件运行EXE?

Windows 如何在Windwos 10中使用代理可执行文件运行EXE?,windows,bash,cmd,windows-10,Windows,Bash,Cmd,Windows 10,我需要在同一台计算机上使用多个PHP版本,并希望通过以下策略解决此问题: 我创建了一个类似于D:\bin的文件夹,并将其添加到路径中 我为每个版本创建一个bash文件(如php56,php70,php80,等等),并将这些文件放在我的bin目录中 bash文件应该包含一些代码,用于将命令和参数“转发”到相应的php.exe,以便在同一窗口中执行它,从而起到一种“代理”的作用 结果应该如下所示: $ where php56 D:\bin\php56 $ php56 -v PHP 5.6.40

我需要在同一台计算机上使用多个PHP版本,并希望通过以下策略解决此问题:

  • 我创建了一个类似于
    D:\bin
    的文件夹,并将其添加到
    路径中
  • 我为每个版本创建一个bash文件(如
    php56
    php70
    php80
    ,等等),并将这些文件放在我的
    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
时,它可以工作。但它不适用于传递参数


如何让它工作?

它在CMD和PowerShell中仍然不工作。但至少对于GitBash来说,这里有一个可行的解决方案:

D:\bin\php56

"C:\Program Files\PHP56NTS\php.exe" $@

bash
是Linux shell解释器,默认情况下在Windows上不可用。Windows命令处理器
cmd.exe
默认处理文件扩展名为
.bat
.cmd
的批处理文件。请打开,运行
cmd/?
,并仔细完整地阅读输出帮助。下次运行
call/?
并再次阅读整个输出帮助。您需要像
D:\bin\php56.cmd
这样的批处理文件,其中包含
@“C:\Program Files\PHP56NTS\php.exe”%*
行,以便将传递给批处理文件的所有参数传递给php可执行文件。
$ php56 -v
PHP 5.6.40 (cli) (built: Jan  9 2019 15:10:55)
Copyright (c) 1997-2016 The PHP Group