Php 在新命令提示符中执行命令

Php 在新命令提示符中执行命令,php,windows,symfony,batch-file,docker,Php,Windows,Symfony,Batch File,Docker,我在Windows机器上的Docker上开发了一个PHP Symfony应用程序。为了进行条令迁移,我想设置一种在PHP容器中运行这些命令的简单方法。在工作中,我们有一个解决方案,但它是在Linux上。解决方案是这个名为“控制台”的shell脚本: 现在您可以执行console原则:迁移:diff,所发生的事情是:打开PHP容器的外壳,并在bin/console之后插入参数“原则:迁移:diff”,从而在PHP容器内有效地调用bin/console原则:迁移:状态 我现在想在Windows机器上

我在Windows机器上的Docker上开发了一个PHP Symfony应用程序。为了进行条令迁移,我想设置一种在PHP容器中运行这些命令的简单方法。在工作中,我们有一个解决方案,但它是在Linux上。解决方案是这个名为“控制台”的shell脚本:

现在您可以执行
console原则:迁移:diff
,所发生的事情是:打开PHP容器的外壳,并在bin/console之后插入参数“原则:迁移:diff”,从而在PHP容器内有效地调用
bin/console原则:迁移:状态

我现在想在Windows机器上实现上述功能。我试着像这样编写console.bat,它只是在PHP容器中暂停:

docker exec -ti freeenergy_php_1 /bin/bash
doctrine:migrations:status
我也试过:

docker exec -ti freeenergy_php_1 /bin/bash < doctrine:migrations:status
docker exec-ti freeenergy\u php\u 1/bin/bash
这在以下情况下失败:

docker exec-ti freeenergy_php_1/bin/bash 0:迁移:状态文件名、目录名或卷 标签语法不正确


我在docker exec的文档中找到了这个-c参数,它可以正常工作。console.bat文件现在如下所示:

docker exec -ti freeenergy_php_1 /bin/bash -c "bin/console %*"

启动docker的脚本的任何部分都不会在docker容器内执行。您需要告诉docker运行该容器可以访问的东西。听起来您只需要一个bash启动脚本。
docker exec -ti freeenergy_php_1 /bin/bash -c "bin/console %*"