cmd - 如何使用来自多个目录的一个命令编译多个 proto 文件
问题描述
我有以下结构:
根文件夹/
foldA
A1.proto
foldB
B1.proto
foldC
C1.proto
我尝试的是:
for /r %g in (*.proto) do protoc -I=rootfolder --python_out=. %g
理想情况下,我希望将它们全部编译到根文件夹级别的名为 protos 的文件夹中。我也不能对它们进行硬编码,因为我应该执行一个命令来编译将来添加的其他原始文件。我的命令得到的错误是:
<full_path_to_proto_file> 文件不位于使用 --proto_path(或 -I)指定的任何路径中。您必须指定包含此文件的 --proto_path。请注意,proto_path 必须是 .proto 文件名的精确前缀—— protoc 太笨了,无法确定两个路径(例如绝对路径和相对路径)何时相等。
解决方案
感谢我帖子评论部分的好心用户
for /D %J in ("rootfolder\*") do for %I in ("%~J\*.proto") do protoc --proto_path="%~dpI." --python_out="protos" "%~nxI"
推荐阅读
- javascript - 无法挂载组件:使用 vue-c3
- java - 使用 iText7 形成此布局的最佳方法是什么?
- reactjs - 无法从容器页面触发我的操作,提示未定义错误
- angular - Angular:从延迟加载的模块中导出组件
- vim - VIM defaults.vim 没有按预期工作;一些命令只能在主目录下工作
- python - Selenium 循环上的 StaleElementException
- javascript - 单击按钮时显示更多处于反应状态的项目
- python - 解析字典中的数据
- javascript - MessagePack 解码期间内存不足
- xaml - 如何更改特定行的整个网格的背景颜色