我试图自动化在Windows 10上构建ffmpeg的过程。我下面的指南:https://trac.ffmpeg.org/wiki/CompilationGuide/MSVC
当我手动操作时,一切都很好,但是我想写一个批处理文件,我可以运行它来自动完成整个过程。
构建需要我设置Visual Studio环境和MSYS环境。这是我遇到麻烦的地方,因为运行MSYS环境会打开一个新的shell。我想在打开MSYS shell后将configure/make/make install命令传递给它。
我已经尝试了以下解决方案:How to open a new shell in cmd,then run script in a new shell?
他们遇到的问题看起来和我的很相似,但是那里发布的解决方案对我不起作用。
下面是当前的bat文件:
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat"
call "C:\workspace\windows\mingw-get\msys\1.0\msys.bat" start cmd.exe /k bscript
pause
和bscript:
./configure --enable-shared --toolchain=msvc --arch=amd64
make
make install
我试过各种各样的变化,比如:
call "C:\workspace\windows\mingw-get\msys\1.0\msys.bat" /k bscript
call "C:\workspace\windows\mingw-get\msys\1.0\msys.bat" bscript
start "C:\workspace\windows\mingw-get\msys\1.0\msys.bat" /k bscript
start "C:\workspace\windows\mingw-get\msys\1.0\msys.bat" bscript
我还尝试过将bscript代码保留在原始批处理文件中。
configure/make命令将在原始cmd窗口、新cmd窗口中运行,或者根本不运行。
有没有一种方法可以像这样将命令传递给MSYS shell?
2条答案
按热度按时间h6my8fg21#
这可能被认为是一个有点晚的答案,但在精神上帮助那些谁沿着这里在未来:
MSYS2文档包含特定于启动MSYS2的页面:https://www.msys2.org/wiki/Launchers/从这里,我们了解到可以从Windows shell启动MSYS2环境,如下所示:
如果将其放在
*.bat
文件中并执行该脚本,将生成一个新的终端窗口,其中bash在MSYS2环境下运行。该文档进一步说明了如何在该bash shell中运行一些东西:
上面的操作将再次生成一个新的终端窗口,加载MSYS2环境,启动bash,然后在该bash示例中运行python可执行文件。
从这里,直接运行您想要的程序(而不是
python
),或者创建一个bash脚本并将该脚本的参数传递给bash调用,以便在MSYS2环境中从Windows批处理文件执行常规bash脚本:)i34xakig2#
我不知道你是否得到了结果。
你可以运行命令在窗口控制台:
C:\msys64\msys2_shell.cmd-明w32- shell 测试脚本
C:\管理系统64\管理系统2 shell 命令:MSYS发射棒
测试脚本:usr/bin中启动脚本
并且您需要在启动脚本中设置$PATH以启动命令