【发布时间】:2021-08-07 13:16:51
【问题描述】:
我正在尝试制作一个简单的批处理文件来编译一些代码,但我终其一生都无法弄清楚或找到有关如何执行此操作的任何信息。
在 Linux 上,我正在这样做:
find ./bin-int/ -type f -name '*.o' -exec rgblink -o ./bin/lapis.gb -n ./bin-int/symbols.sym {} +
这基本上找到了 ./bin-int/ 中所有扩展名为 .o 的文件,并将它们用作命令 rgblink 的输入变量。
但我终其一生都无法弄清楚如何在 Windows 上执行此操作。我得到的最接近的是
for /r ".\bin-int" %%i in (*.o); do rgblink -o ./bin/lapis.gb -n ./bin-int/symbols.sym %%i
这是错误的,因为我不想为每个文件运行一次命令。我希望每个文件同时成为命令的输入。
我该怎么做?谢谢!
【问题讨论】:
-
批处理文件不使用数组,所以你需要做的是创建一个包含第一个文件名的变量,并继续使用 for 循环方法将每个新文件附加到它,直到它们都被迭代了。完成后,运行一个 rgblink 命令,将该多字符串变量作为最终参数传递。
-
没有“Linux shell”之类的东西,因为有许多在 Linux 上运行的 shell,如 bash、sh、zsh、csh、ksh、pwsh...
-
@phuclv 我使用的是 Linux Mint 附带的任何东西,大多数 shell 都有类似的命令。但无论如何,这显然不是这个问题的重点。
-
我已经回滚了你的问题内容@TypeDefinition。请不要在问题本身中发布解决方案。
标签: linux windows shell batch-file